文件查看与文本处理-paste 📄 — 按列合并文件

作用

paste 将多个文件按行水平合并,Tab 分隔,类似将并排的列拼接成表格。

语法

1
paste [选项] 文件...

用法

paste 取每个文件的第 1 行组成输出第 1 行(Tab 分隔),第 2 行组成输出第 2 行,以此类推。-d 分隔符 指定分隔符(默认 Tab),-s 串行合并(将文件内容转置为一行,然后粘合)。文件行数不同时,短文件缺失部分用空值填充。

常用参数

参数 说明
-d 分隔符 指定列分隔符
-s 串行合并(转置效果)
-z 以 NUL 结尾

示例

1
2
3
4
paste FILE1.TXT FILE2.TXT          # 按列并排合并
paste -d, FILE1.TXT FILE2.TXT # 用逗号分隔列
paste -s FILE1.TXT FILE2.TXT # 串行合并(转置效果)
paste -d " | " A.TXT B.TXT # 自定义分隔符

来源:菜鸟教程

文件查看与文本处理-printf 📄 — 格式化输出

作用

printf 类似 C 语言的 printf,按格式说明符输出,比 echo 更强大的格式化控制能力。

语法

1
printf 格式 [参数...]

用法

printf 不自动添加换行符。格式符:%s 字符串、%d 整数、%f 浮点数、%x 十六进制。转义:\\n 换行、\\t 制表符、\\0NNN 八进制字符。常配合 awk 生成格式化报表。格式字符串会循环应用到所有参数。

常用参数

参数 说明
%s 字符串
%d 整数
%f 浮点数
%x 十六进制
\\n 换行符
\\t 制表符
%10s 宽度 10 的字符串(右对齐)
%-10s 宽度 10 的字符串(左对齐)

示例

1
2
3
4
5
printf "%s\\n" "HELLO"           # 格式化输出字符串
printf "%d\\t%s\\n" 1 "APPLE" # 输出数字和字符串(Tab 分隔)
printf "%10s %5d\\n" "SCORE" 100 # 右对齐:字符串 10 宽,数字 5 宽
printf "%05d\\n" 42 # 补零对齐,输出 00042
printf "%x\\n" 255 # 十进制转十六进制,输出 ff

来源:菜鸟教程

文件查看与文本处理-rev 📄 — 反转字符顺序

作用

rev(reverse)逐行反转字符顺序(从右到左),常配合 cut 处理可变长度字段。

语法

1
rev [选项] 文件

用法

rev 读入每行文本,将该行字符顺序反转后输出。可配合 rev 反转两次实现从末尾截取:rev FILE.TXT | cut -d: -f1 | rev 获取每行最后一个冒号分隔字段。

常用参数

参数 说明
-v 显示版本信息

示例

1
2
3
rev FILE.TXT                   # 反转每行字符顺序
echo "HELLO" | rev # 输出 OLLEH
rev FILE.TXT | cut -d: -f1 | rev # 两次反转提取每行最后一个字段

来源:菜鸟教程

文件查看与文本处理-sed 📄 — 流式编辑器

作用

sed(stream editor)按行读取文本并执行编辑操作(替换、删除、插入、打印等),支持正则表达式和原地修改,是文本批处理的瑞士军刀。

语法

1
sed [选项] '脚本' 文件

用法

sed 逐行处理文本,不修改原文件默认输出到标准输出。-i 原地修改文件。核心指令:s/旧/新/g 全局替换,/模式/d 删除匹配行,/模式/p 打印匹配行,N d 删除第 N 行,N,Mp 打印 N 到 M 行。脚本中常结合管道使用。

常用参数

参数 说明
-i 原地修改文件
-n 关闭自动打印(配合 p 使用)
-E 扩展正则
s/旧/新/g 全局替换
/模式/d 删除匹配行
/模式/p 打印匹配行
N d 删除第 N 行
N,Mp 打印 N 到 M 行

示例

1
2
3
4
5
6
sed 's/OLD/NEW/g' FILE.TXT         # 全局替换 OLD 为 NEW(输出到屏幕)
sed -i 's/OLD/NEW/g' FILE.TXT # 原地修改文件
sed -n '/ERROR/p' LOG.TXT # 只打印含 ERROR 的行
sed '5,10d' FILE.TXT # 删除第 5 到 10 行
sed 's/^/PREFIX/' FILE.TXT # 在每行开头添加 PREFIX
sed '/^$/d' FILE.TXT # 删除所有空行

来源:菜鸟教程

文件与目录管理-rm 📁 — 删除文件或目录

作用

rm(remove)用于永久删除文件或目录,操作不可逆(不经过回收站)。默认不能删除目录,需加 -R 递归删除。

语法

1
rm [选项] 文件...

用法

rm 直接删除数据块,无法通过常规手段恢复。-f 强制删除忽略警告,-R 递归删除目录及内容,-i 交互式逐文件确认。极度危险操作rm -rf / 会删除整个系统(现代 Linux 默认启用 --preserve-root 保护)。建议养成交互删除习惯或先 ls 确认。

常用参数

参数 说明
-f 强制删除,忽略不存在的文件
-i 交互式逐一确认
-R 递归删除目录
-d 删除空目录
-v 显示详细过程
--preserve-root 禁止删除 /(默认启用)

示例

1
2
3
4
5
6
7
rm FILE.TXT              # 删除文件(默认交互确认)
rm -f FILE.TXT # 强制删除不提示
rm -i FILE.TXT # 逐文件确认删除
rm -rf DIR/ # 递归强制删除目录
rm -rfv DIR/ # 递归强制删除并显示过程
rm -d EMPTYDIR/ # 删除空目录
rm -rf DIR/* # 删除目录下所有内容

来源:菜鸟教程

文件与目录管理-rmdir 📁 — 删除空目录

作用

rmdir(remove directory)用于删除空目录,非空目录需使用 rm -r-p 可递归删除空父目录。

语法

1
rmdir [选项] 目录...

用法

rmdir 只能删除空目录,若目录非空则报错。实际工作中 rmdir 不常用,多数场景直接使用 rm -rf 替代。-p 选项可自底向上删除空父目录链。-v 显示删除过程。

常用参数

参数 说明
-p 递归删除空父目录
-v 显示详细过程
--ignore-fail-on-non-empty 忽略非空目录错误

示例

1
2
3
4
rmdir EMPTYDIR                 # 删除空目录
rmdir -p A/B/C # 递归删除空父目录(删除 C 后尝试删 B,再删 A)
rmdir DIR1 DIR2 DIR3 # 批量删除多个空目录
rmdir -v TEMPDIR # 删除空目录并显示过程

来源:菜鸟教程

文件与目录管理-stat 📁 — 显示文件详细状态信息

作用

stat 显示文件的完整元数据,包括 inode 编号、文件大小、块数、权限、所有者、访问/修改/变更时间等,比 ls -l 更详细。

语法

1
stat [选项] 文件...

用法

stat 输出文件的全部属性信息,数据量远多于 ls。-f 查看文件系统信息(而非文件本身),-t 简洁格式(一行),-c 格式 自定义输出(类似 printf 格式符)。适合脚本中提取文件元数据。

常用参数

参数 说明
-f 显示文件系统信息
-t 简洁格式(一行输出)
-c 格式 自定义输出格式
-L 跟随符号链接
-Z 显示 SELinux 上下文

示例

1
2
3
4
5
stat FILE.TXT                        # 显示文件完整元数据
stat -f /home # 显示 /home 的文件系统信息
stat -t FILE.TXT # 简洁格式一行输出
stat -c "%N %S %Y" FILE.TXT # 自定义格式:文件名、大小、修改时间
stat -L LINK.TXT # 显示符号链接指向的文件信息

来源:菜鸟教程

文件与目录管理-touch 📁 — 创建文件或更新时间戳

作用

touch 用于创建空白新文件(若文件不存在),或更新已有文件的访问时间和修改时间为当前时间。

语法

1
touch [选项] 文件...

用法

touch 最常用于快速创建空文件,如占位文件、锁文件、日志文件。也用于触发构建系统重新编译(更新修改时间戳)。-a 只修改访问时间,-m 只修改内容时间,-t 指定具体时间而非当前时间,-r 参考文件 将时间设为与参考文件相同。

常用参数

参数 说明
-a 只修改访问时间
-m 只修改修改时间
-c 不创建文件(仅更新时间)
-t 时间 使用指定时间
-r 参考文件 使用参考文件的时间
-d 字符串 解析字符串为时间

示例

1
2
3
4
5
6
touch FILE.TXT                      # 创建空文件(已存在则更新时间戳)
touch FILE1 FILE2 FILE3 # 批量创建多个文件
touch -a FILE.TXT # 仅修改访问时间
touch -d "2026-01-01 12:00" FILE.TXT # 修改为指定时间
touch -r REFERENCE.TXT TARGET.TXT # 用参考文件的时间戳
touch /var/lock/APP.LOCK # 创建锁文件占位

来源:菜鸟教程

文件与目录管理-tree 📁 — 树形显示目录结构

作用

tree 以树状图形式递归显示目录层级结构,比 ls -R 更直观易读,常用于文档说明和项目结构展示。

语法

1
tree [选项] [路径]

用法

tree 默认递归显示当前目录所有文件和子目录。-d 只显示目录,-h 显示文件大小,-L N 限制显示深度,-a 显示隐藏文件,-P 模式 只显示匹配的文件。tree -L 1 只显示第一层。

常用参数

参数 说明
-L N 限制显示深度
-a 显示隐藏文件
-d 只显示目录
-F 文件类型标识(/ 目录、* 可执行等)
-h 以人类可读格式显示大小
-P 模式 只显示匹配的文件
-I 模式 排除匹配的文件
-o 文件 输出到文件
--dirsfirst 目录排在前面

示例

1
2
3
4
5
6
7
8
tree                          # 树形显示当前目录结构
tree -L 2 # 限制显示深度为 2 层
tree -a # 显示隐藏文件
tree -d # 只显示目录
tree -h # 以人类可读格式显示文件大小
tree -L 1 -d # 只显示第一层目录
tree -P "*.sh" # 只匹配 .sh 文件
tree -I "node_modules" # 排除 node_modules 目录

来源:菜鸟教程

文件查看与文本处理-awk 📄 — 文本处理语言

作用

awk 是强大的文本分析工具,将行按分隔符拆分为字段($1$2…),支持条件判断、循环、数学运算和自定义格式输出。

语法

1
awk [选项] '模式 {动作}' 文件

用法

awk 以记录(行)和字段(列)的方式处理文本。-F: 指定冒号为字段分隔符。内置变量:$0 整行、$1~`$N 各字段、NR 行号、NF 字段数。BEGIN 在处理前执行,END` 在处理后执行。常用于格式化报表、提取日志特定列、数据统计。

常用参数

参数 说明
-F 分隔符 指定字段分隔符
-v VAR=VAL 设置变量
-f 指定脚本文件
$0 整行内容
$1~`$N` 第 N 个字段
NR 当前行号
NF 当前行字段数
BEGIN {} 首次执行前运行
END {} 最后执行后运行

示例

1
2
3
4
5
6
awk '{print $1, $3}' FILE.TXT           # 打印每行第 1、3 列
awk -F: '{print $1}' /etc/passwd # 以冒号分隔,打印用户名列
awk '{sum += $1} END {print sum}' DATA.TXT # 统计第一列数值总和
awk '/ERROR/ {print NR, $0}' LOG.TXT # 搜索含 ERROR 的行并显示行号
awk 'NR > 1 && NR < 10' FILE.TXT # 打印第 2 到 9 行
awk -F, '{print NR, NF, $0}' DATA.CSV # CSV 文件:行号、列数、整行

来源:菜鸟教程

0%