Linux 命令行文本处理工具
一.基于关键字搜索
命令grep用以基于关键字搜索文本
grep 'Haige' /ect/passwd
find / -user hadoop | grep haige
# -i 在搜索的时候忽略大小写
# -n 显示结果所在行数
# -v 输出不带关键字的行
# -Ax 在输出的时候包含结果所在行之后的指定行数
# -Bx 在输出的时候包含结果所在行之前的指定行数
二.基于列处理文本
命令cut用以基于列处理文本内容
cut -d:-f1 /etc/passwd (使用:作为分割符,处理/etc/passwd文件,之后再显示第一列)
grep haige /etc/passwd | cut -d:-f3 (输出haige那一行的第三列)
# -d 指定分割字符 (默认是TAB)
# -f 指定输出的列号
# -c 基于字符进行切割
cut -c2-6 /etc/passwd
三.文本统计
命令wc用以统计文本信息
例:wc haige
# -l 只统计行数
# -w 只统计单词
# -c 只统计字节数
# -m 只统计字符数
四.文本排序
命令sort用以对文本内容进行排序
例: sort haige
# -r 进行倒序排序
# -n 基于数字进行排序
# -f 忽略大小写
# -u 删除重复行
# -t c 使用c作为分割符分割为列进行排序
# -k x 当进行基于指定字符分割为列的排序时,指定基于那个列的排序
五.删除重复行
1.命令 sort -u 可以用以删除重复行
2.命令uniq 用以删除重复的相邻行
六.文本比较
命令diff用以比较两个文件的区别
例:diff haige haige-new
# -i 忽略大小写(比较的时候)
# -b 忽略空格数量的改变
# -u 统一显示比较信息(一般用以生成patch文件(补丁文件))
diff -u haige haige-new > final.patch
七.处理文本内容
命令tr用以处理文本内容
1.删除关键字
tr - d 'TMD' < haige
2.转换大小写
tr 'a-z' 'A-Z' < haige
八.搜索替换
命令sed用以搜索并替换文本
# sed 's/linux/unix/g' haige(正则表达式:搜索haige的文件,把所有的linux替换成unix,/g如果出现多个匹配项,则都去匹配)
# sed '1,50s/linux/unix/g' haige(替换1-50行)
# sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' haige(指定多个替换匹配命令)
# sed -f sededit haige(指令保存在匹配文件中,使用-f调用该文件)