Skip to content

文本处理命令

文本处理是 Linux 系统的强项之一,提供了丰富而强大的文本处理工具。这些命令可以用于查看、搜索、编辑、分析和处理文本文件。

命令列表

文本查看

cat

连接多个文件并打印到标准输出,常用于查看文件内容

less

分页查看文件内容,支持向前向后翻页

more

分页查看文件内容,只支持向前翻页

head

显示文件的前几行(默认10行)

tail

显示文件的后几行,常用于查看日志文件

文本搜索与匹配

grep

强大的文本搜索工具,支持正则表达式

egrep

扩展的正则表达式搜索工具

fgrep

快速的固定字符串搜索工具

ag

银搜索器,比 grep 更快的代码搜索工具

ack

程序员友好的搜索工具

文本编辑与转换

sed

流编辑器,用于文本替换、删除、插入等操作

awk

强大的文本处理工具,适合处理结构化文本

tr

字符转换工具,可以替换或删除字符

cut

从文本中提取指定的列或字段

paste

合并文件的行

文本排序与统计

sort

对文本行进行排序

uniq

报告或删除重复的行

wc

统计文件的行数、单词数和字符数

nl

给文本行添加行号

文本比较

diff

比较两个文件的差异

comm

逐行比较两个已排序的文件

cmp

逐字节比较两个文件

实用示例

日志分析

bash
# 查看日志文件最后100行
tail -n 100 /var/log/syslog

# 实时监控日志文件
tail -f /var/log/apache2/access.log

# 搜索错误信息
grep -i "error" /var/log/syslog

# 统计IP访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -nr

文本处理流水线

bash
# 提取、排序并统计唯一值
cat data.txt | cut -d',' -f2 | sort | uniq -c

# 搜索并高亮显示
grep --color=always "pattern" file.txt

# 替换文本内容
sed 's/old_text/new_text/g' file.txt

# 复杂的 awk 处理
awk -F',' '{sum+=$3} END {print "Total: " sum}' data.csv

数据清洗

bash
# 删除空行
sed '/^$/d' file.txt

# 删除重复行
sort file.txt | uniq

# 转换大小写
tr '[:lower:]' '[:upper:]' < file.txt

# 删除特定字符
tr -d '[:digit:]' < file.txt

基于 MIT 许可发布