文本处理工具
###########################UNIT2_6.文本处理工具
1.diff:比较俩个文件的内容
diff file1 file2
diff -c file1 file2 ##显示上下文周围的行
diff -u file1 file2 ##使用统一输出格式(可用来生成补丁文件)
diff -r file1 file2 ##从指定的目录开始文件执行递归式比较
2.patch
采用补丁文件 patchfile ( 包含由 diff 生成的差异列表 ) 并将这些差异应用于生成补丁版的一个或多个原始文件。通常 , 补丁版替换原始文件 , 但当指定 -b 选项时 , 可以制作备份。将用 .orig 文件名后缀重命名原始文件
diff -u file1 file2 > file.path ##生成补丁文件file.path
patch file1 file.path ##给file1打补丁
patch -b file1 file.path ##备份文件,生成file1.orig文件
3.grep:查找文件中与模式匹配的行
grep -i passwd ##不区分大小写搜索
grep -n passwd ##显示关键字所在行
grep -r passwd ##在目录中查找含有关键字的文件
grep -c passwd ##显示过滤结果的个数
grep -v passwd ##反向过滤
grep -E "关键字1|关键字2" passwd ##过滤多个关键字
^关键字 ##以关键字开头
关键字$ ##以关键字结尾
4.cut:用于剪切文件中的字段或列并将其显示到标准输出
cut -d 分隔符 ##指定分隔符
cut -f 1,7 ##显示指定的列
cut -c 1-4 ##显示指定的字符
5.sort:用于排序文本数据,经常与管道一起使用
sort file ##按字符排序
sort -n file ##按数值排序
sort -k 1 file ##设置排序字段
sort -r file ##按字符倒序输出
sort -t 分隔符 file ##指定其他字段分隔符(默认空格)
6.uniq
uniq -u ##只显示唯一行
uniq -d ##显示重复行
uniq -c ##每行显示一次(包括计数重复行)
7.tr:用于转字符: 即 , 如果给定了两个字符范围 , 则只要发现某个字符位于第一个范围中 , 就会将其转换为第二个范围中对等的字符。该命令通常在 shell 脚本中使用 , 以按预期情况转换数据。
tr 'A-Z' 'a-z' <file
8.sed:流编辑器 , 用于对文本数据流执行编辑。假定要处理一个文件名 , sed 将对文件中的所有行执行搜索和替换 , 以将修改后的数据发送到标准输出 ; 即 , 其实际上并不修改现有文件。与 grep 一样 , sed 通常在管道中使用。
sed 's/原字符/替换字符/g' file
sed -e '策略1' -e '策略2' file
sed -i file ##把转换后的内容输入到指定文件
sed '1,3s/原字符/替换字符/g' file ##1-3行替换
sed 3d file ##屏蔽指定行
sed 3p file ##复制指定行
sed -n 4p file ##只显示指定行