第三章 文本处理
常用文本处理命令
1. cat:查看文件内容并连接文件
作用:用于查看一个或多个文件的内容,并能将多个文件合并输出。
示例:
cat file1.txt
cat file1.txt file2.txt > combined.txt # 将多个文件合并输出
常用选项:
-n:为输出的每一行编号。
-b:为非空行编号。
2. echo:输出文本或变量
作用:用于在终端输出文本或变量的值。
示例:
echo "Hello, World!" # 输出文本
echo $HOME # 输出环境变量
常用选项:
-n:不输出末尾的换行符。
3. grep:文本搜索工具
作用:在文件中搜索符合模式的文本行,支持正则表达式。
示例:
grep "pattern" file.txt # 查找文件中包含 "pattern" 的行
grep -r "pattern" /path/to/dir # 递归查找目录中的文件
常用选项:
-i:忽略大小写。
-v:显示不匹配的行。
-r:递归查找。
4. sed:流编辑器
作用:用于文本的替换、删除、插入等编辑操作,适合处理流式文本。
示例:
sed 's/old/new/g' file.txt # 将文件中的 "old" 替换为 "new"
常用选项:
-i:直接修改文件。
-e:表示接下来是编辑命令。
5. awk:强大的文本处理工具
作用:用于按列处理和分析文本文件,支持复杂的模式匹配和处理。
示例:
awk '{print $1, $2}' file.txt # 打印每行的第一个和第二个字段
常用选项:
-F:指定字段分隔符。
-v:在命令行中定义变量。
6. cut:按列切割文本
作用:用于从每行中提取特定的字段或字符。
示例:
cut -d "," -f 1,3 file.csv # 从 CSV 文件中提取第1和第3列
常用选项:
-d:指定分隔符。
-f:指定要提取的字段。
7. sort:排序文本
作用:对文件中的文本行进行排序。
示例:
sort file.txt # 按字母顺序排序
常用选项:
-n:按数字排序。
-r:逆序排序。
8. uniq:去重
作用:用于去除文件中重复的行,通常与 sort 配合使用。
示例:
sort file.txt | uniq # 去除重复行
常用选项:
-c:统计每行出现的次数。
-d:只显示重复的行。
9. tee:同时输出到文件和标准输出
作用:将命令的输出同时显示在终端和写入文件。
示例:
echo "Hello, World!" | tee file.txt # 输出并保存到文件
常用选项:
-a:追加到文件,而不是覆盖文件。
10. tr:字符替换
作用:用于转换或删除字符。
示例:
echo "hello" | tr 'a-z' 'A-Z' # 转换为大写
常用选项:
-d:删除指定字符。
-s:压缩重复字符。
11. xargs:将标准输入转化为命令行参数
作用:将标准输入的数据转化为命令行参数,常用于与 find 命令配合使用。
示例:
find /path -name "*.txt" | xargs rm # 删除所有 .txt 文件
文本处理命令的组合使用
许多文本处理命令可以组合使用,通过管道符 | 将一个命令的输出传递给下一个命令。常见的组合示例如下:
使用 grep 查找匹配文本:
grep "pattern" file.txt | sort | uniq
使用 awk 按列处理数据:
awk '{print $1, $3}' file.txt | sort | uniq -c
常用文本处理命令
1. cat:查看文件内容并连接文件
作用:用于查看一个或多个文件的内容,并能将多个文件合并输出。
示例:
cat file1.txt
cat file1.txt file2.txt > combined.txt # 将多个文件合并输出
常用选项:
-n:为输出的每一行编号。
-b:为非空行编号。
2. echo:输出文本或变量
作用:用于在终端输出文本或变量的值。
示例:
echo "Hello, World!" # 输出文本
echo $HOME # 输出环境变量
常用选项:
-n:不输出末尾的换行符。
3. grep:文本搜索工具
作用:在文件中搜索符合模式的文本行,支持正则表达式。
示例:
grep "pattern" file.txt # 查找文件中包含 "pattern" 的行
grep -r "pattern" /path/to/dir # 递归查找目录中的文件
常用选项:
-i:忽略大小写。
-v:显示不匹配的行。
-r:递归查找。
4. sed:流编辑器
作用:用于文本的替换、删除、插入等编辑操作,适合处理流式文本。
示例:
sed 's/old/new/g' file.txt # 将文件中的 "old" 替换为 "new"
常用选项:
-i:直接修改文件。
-e:表示接下来是编辑命令。
5. awk:强大的文本处理工具
作用:用于按列处理和分析文本文件,支持复杂的模式匹配和处理。
示例:
awk '{print $1, $2}' file.txt # 打印每行的第一个和第二个字段
常用选项:
-F:指定字段分隔符。
-v:在命令行中定义变量。
6. cut:按列切割文本
作用:用于从每行中提取特定的字段或字符。
示例:
cut -d "," -f 1,3 file.csv # 从 CSV 文件中提取第1和第3列
常用选项:
-d:指定分隔符。
-f:指定要提取的字段。
7. sort:排序文本
作用:对文件中的文本行进行排序。
示例:
sort file.txt # 按字母顺序排序
常用选项:
-n:按数字排序。
-r:逆序排序。
8. uniq:去重
作用:用于去除文件中重复的行,通常与 sort 配合使用。
示例:
sort file.txt | uniq # 去除重复行
常用选项:
-c:统计每行出现的次数。
-d:只显示重复的行。
9. tee:同时输出到文件和标准输出
作用:将命令的输出同时显示在终端和写入文件。
示例:
echo "Hello, World!" | tee file.txt # 输出并保存到文件
常用选项:
-a:追加到文件,而不是覆盖文件。
10. tr:字符替换
作用:用于转换或删除字符。
示例:
echo "hello" | tr 'a-z' 'A-Z' # 转换为大写
常用选项:
-d:删除指定字符。
-s:压缩重复字符。
11. xargs:将标准输入转化为命令行参数
作用:将标准输入的数据转化为命令行参数,常用于与 find 命令配合使用。
示例:
find /path -name "*.txt" | xargs rm # 删除所有 .txt 文件
文本处理命令的组合使用
许多文本处理命令可以组合使用,通过管道符 | 将一个命令的输出传递给下一个命令。常见的组合示例如下:
使用 grep 查找匹配文本:
grep "pattern" file.txt | sort | uniq
使用 awk 按列处理数据:
awk '{print $1, $3}' file.txt | sort | uniq -c










