文件查看与文本处理-sort 📄 — 文本排序

作用

sort 对文本行按字典序或数值排序,支持按列排序、去重、逆序等,是数据处理的基础工具。

语法

1
sort [选项] 文件

用法

sort 默认按字典序升序排列。-n 数值排序(识别数字大小),-r 逆序,-k N 按第 N 列排序,-u 去重(等价于 sort | uniq),-t 分隔符 指定列分隔符。常与 cut、uniq 组成管道链处理表格数据。

常用参数

参数 说明
-n 数值排序
-r 逆序排序
-u 去重
-k N 按第 N 列排序
-t 分隔符 指定列分隔符
-h 人类可读数值排序(K/M/G)
-f 忽略大小写
-c 检查是否已排序

示例

1
2
3
4
5
6
sort FILE.TXT                  # 字典序升序排列
sort -n FILE.TXT # 按数值大小排序
sort -n -r DATA.TXT # 按数值逆序排序
sort -k 2 -t: /etc/passwd # 以冒号分隔,按第 2 列排序
sort -u FILE.TXT # 排序并去重
du -sh | sort -h # 磁盘使用按人类可读大小排序

来源:菜鸟教程

文件查看与文本处理-split 📄 — 分割大文件

作用

split 将大文件按行数或大小分割成多个小文件,适合拆分日志或大数据集。

语法

1
split [选项] [输入 [前缀]]

用法

split 按行数 -l N 或大小 -b 100M 分割文件。-d 使用数字后缀(默认字母),-a N 后缀长度。-e 在空行处分割。输出文件默认命名 XAAXAB…,可指定前缀。

常用参数

参数 说明
-l N 每个文件 N 行
-b 大小 每个文件 N 字节(如 100M)
-d 使用数字后缀
-a N 后缀长度
-a N 字母后缀长度
--verbose 显示分割过程

示例

1
2
3
4
split -l 1000 BIGFILE.LOG      # 每 1000 行分割为一个文件
split -b 50M DATA.DUMP # 每 50MB 分割为一个文件
split -d -a 3 -l 500 FILE.TXT LOG_ # 数字后缀 3 位,前缀为 LOG_
split -a 2 -b 10M FILE.TXT # 字母后缀 2 位

来源:菜鸟教程

文件查看与文本处理-tac 📄 — 反向输出文件

作用

tac(cat 的反向拼写)从最后一行开始反向输出文件内容,行顺序完全颠倒,适合从日志末尾开始查看。

语法

1
tac [选项] 文件

用法

tac 与 cat 输出顺序相反,最后一行在第一行输出。-b 在每个记录前加分隔符,-r 使用正则分隔符,-s 指定记录分隔符(默认换行符)。可配合管道:tac FILE.TXT | head 查看文件末尾几行。

常用参数

参数 说明
-b 在每个记录前加分隔符
-r 使用正则分隔符
-s 分隔符 指定记录分隔符

示例

1
2
3
tac FILE.TXT                  # 反向输出文件(末行在前)
tac -s '.' FILE.TXT # 以句号为分隔符反转段落
tac FILE.TXT | head # 查看文件末尾几行(配合 head)

来源:菜鸟教程

文件查看与文本处理-tail 📄 — 显示文件末尾

作用

tail 显示文件末尾 N 行(默认 10 行),-F 实时追踪文件新增内容,是监控日志文件的核心工具。

语法

1
tail [选项] 文件

用法

tail 默认输出后 10 行。-n 20 指定行数,-F 实时追踪新增内容(日志监控),--pid=PID 在进程退出后停止追踪。-c 100 显示后 100 字节。调试日志时 tail -F /var/log/APP.LOG 持续查看新输出。

常用参数

参数 说明
-n N 显示后 N 行
-F 实时追踪新增内容
--pid=PID 进程退出后停止
-c N 显示后 N 字节
-q 不显示文件名标题
-v 显示详细信息

示例

1
2
3
4
5
tail FILE.TXT                    # 显示文件末尾 10 行
tail -n 50 FILE.TXT # 显示末尾 50 行
tail -F /var/log/syslog # 实时跟踪日志更新
tail -n 100 -F APP.LOG # 先显示末 100 行,再持续跟踪
tail -c 200 FILE.TXT # 显示末尾 200 字节

来源:菜鸟教程

文件查看与文本处理-tee 📄 — 双向输出

作用

tee 同时将 stdin 数据输出到 stdout 和一个或多个文件,常用于在管道处理中同时查看和保存中间结果。

语法

1
命令 | tee [选项] 文件

用法

tee 复制 stdin 到 stdout 的同时写入文件。-a 追加而非覆盖。适合调试管道:CMD1 | tee STEP1.LOG | CMD2 | tee STEP2.LOG | CMD3。也可用于同时查看和保存命令输出。

常用参数

参数 说明
-a 追加到文件(不覆盖)
-i 忽略中断信号

示例

1
2
3
4
CMD | tee OUTPUT.LOG           # 同时输出到屏幕和文件
CMD | tee -a APPEND.LOG # 追加到文件而非覆盖
CMD | tee FILE1.LOG FILE2.LOG # 同时写入多个文件
CMD1 | tee -a DEBUG.LOG | CMD2 # 调试管道,保存中间结果

来源:菜鸟教程

文件查看与文本处理-tr 📄 — 字符转换

作用

tr(translate)对 stdin 进行单字符映射、删除或压缩,只接受管道输入,不支持文件参数。

语法

1
命令 | tr [选项] 字符集1 [字符集2]

用法

tr 在字符级别操作文本。常见用法:tr 'A-Z' 'a-z' 大小写转换,tr -d 字符 删除指定字符,tr -s 字符 压缩连续重复字符(如多个空格变为一个),tr -c 字符集1 字符集2 补集操作。只从 stdin 读取,不处理文件参数。

常用参数

参数 说明
-d 删除指定字符
-s 压缩连续重复字符
-c 补集(取反)
tr 'A-Z' 'a-z' 大小写转换
tr -d ' ' 删除空格
tr -s ' ' 压缩空格

示例

1
2
3
4
5
echo "HELLO" | tr 'A-Z' 'a-z'      # 大写转小写
echo "hello" | tr 'a-z' 'A-Z' # 小写转大写
cat FILE.TXT | tr -d ' ' # 删除所有空格
cat FILE.TXT | tr -s ' ' # 压缩连续空格为单个
echo "a b c" | tr -d ' ' # 删除空格输出 abc

来源:菜鸟教程

文件查看与文本处理-uniq 📄 — 去重或统计重复行

作用

uniq 报告或删除文件中重复的行。注意:只处理连续重复行,通常需先 sort 排序。

语法

1
uniq [选项] [输入文件 [输出文件]]

用法

uniq 只能去除相邻重复行,因此常与 sort 配合使用:sort FILE.TXT | uniq-c 统计重复次数,-d 只显示重复行,-u 只显示唯一行,-i 忽略大小写。-w N 仅比较前 N 个字符。

常用参数

参数 说明
-c 统计每行出现次数
-d 只显示重复行
-u 只显示唯一行
-i 忽略大小写
-w N 只比较前 N 个字符
--all-repeated 显示所有重复行

示例

1
2
3
4
5
sort FILE.TXT | uniq            # 排序后去重
sort FILE.TXT | uniq -c # 统计每行出现次数
sort FILE.TXT | uniq -d # 只显示重复行
sort FILE.TXT | uniq -u # 只显示唯一行
sort FILE.TXT | uniq -i # 忽略大小写去重

来源:菜鸟教程

文件查看与文本处理-wc 📄 — 统计行/词/字符数

作用

wc(word count)统计文件的行数、单词数、字符数或字节数,是代码行数统计的常用工具。

语法

1
wc [选项] 文件

用法

wc 默认输出行数、单词数、字节数。-l 只统计行数,-w 只统计单词数,-c 只统计字节数,-m 统计字符数(含多字节字符)。配合管道使用:cat FILE.TXT | wc -l

常用参数

参数 说明
-l 行数
-w 单词数
-c 字节数
-m 字符数(含多字节)
-L 最长行的字符数

示例

1
2
3
4
5
wc FILE.TXT                    # 统计行、单词、字节数
wc -l FILE.TXT # 只统计行数
wc -w FILE.TXT # 只统计单词数
cat FILE.TXT | wc -l # 管道统计行数
wc *.py # 批量统计多个文件

来源:菜鸟教程

文件查看与文本处理-xargs 📄 — 批量执行命令

作用

xargs 从标准输入构建并执行命令行,将输入数据作为参数传递给指定命令,常用于批量文件操作。

语法

1
命令 | xargs [选项] [命令 [初始参数]]

用法

xargs 将管道输入转换为命令参数。-n N 每批 N 个参数,-P N 并行执行 N 个进程,-I {} 指定替换字符串(用 {} 代表输入的每个项)。经典组合:find . -name "*.log" | xargs rm -f-t 打印执行命令(调试),-0 配合 find -print0 处理含空格的文件名。

常用参数

参数 说明
-n N 每批 N 个参数
-P N 并行执行 N 个进程
-I 替换串 指定替换字符串
-0 以 NUL 分隔输入
-t 打印执行命令
-R N 最多替换次数
--max-args=N 每批最多参数数

示例

1
2
3
4
5
find . -name "*.log" | xargs rm -f      # 批量删除 .log 文件
find . -name "*.txt" | xargs grep "HELLO" # 在多个文件中搜索
find . -type f -print0 | xargs -0 wc -l # 安全处理含空格的文件名
echo FILE1 FILE2 FILE3 | xargs -n 1 echo # 每批执行 1 个参数
find . -name "*.py" | xargs -P 4 wc -l # 4 进程并行统计

来源:菜鸟教程

权限与用户管理-chgrp 🔐 — 修改文件所属组

作用

chgrp(change group)修改文件或目录的所属组,无需 root(用户须是该组成员)。

语法

1
chgrp [选项] 组 文件

用法

chgrp 专门用于改所属组,与 chown :组 效果相同。-R 递归修改,-v 显示详情。日常使用中常被 chown :组 替代,但 chgrp 仍独立存在。

常用参数

参数 说明
-R 递归修改
-v 显示详细过程
--reference=RFILE 参考文件的所属组

示例

1
2
3
4
chgrp DEVELOPERS FILE.TXT       # 修改文件所属组
chgrp -R WWW /var/www # 递归修改目录所属组
chgrp --reference=RFILE TARGET # 参考 RFILE 的所属组
chgrp -v STAFF DIR/ # 修改并显示过程

来源:菜鸟教程

0%