定义:根据用户指定的模式(pattern)对目标文本进行过滤,显示被模式匹配到的行
grep [OPTIONS] PATTERN[FILE...]
1.查找文件内容包含root的行数:grep -n root test.txt
2.查找文件内容不包含root的行:grep -nv root test.txt
3.查找后以s开头的行:grep ^s test.txt
4.查找以n结尾的行:grep n$ test.txt
定义:sed是流编辑器,一次处理一行内容。
sed处理方式:
sed [-hnV][-e<script>][-f<script文件>][文本文件]
1.查看帮助
查看技巧:按“J”键向下翻页,按“K”键向上翻页;输入“/+查找内容”,按“n”查看下一条查询内容,按“N”查看上一条查询内容。
2.在第四行后添加新字符串:sed ‘4 a new line‘ test.txt
修改后不会改变原文件中的内容
3.在第二行后加上newline:sed ‘2a drink tea‘ test.txt
修改后不会改变原文件中的内容
4.在第二行前加上newline:sed ‘2i drink tes‘ test.txt
修改后不会改变原文件中的内容
5.全局替换:sed -e ‘s/root/hello/g‘ test.txt
修改后不会改变原文件中的内容,加“g”代表全局修改,否则只修改第一个
6.直接修改文件内容:sed -i ‘s/root/hello/g‘ test.txt
加“-i”就是直接修改原文件,此操作需谨慎
定义:把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理。
awk处理方式:
awk ‘pattern + action‘ [FILE]
1.搜索/etc/passwd有root关键字的所有行,并显示对应的shell:awk -F : ‘/root/{print $7}‘ /etc/passwd
以“:”为分隔符“$7”是第7个域的值
2.打印/etc/passwd的第二行信息:awk -F:‘NR==2{print $0}‘ /etc/passwd
3.使用begin加入标题:awk ‘BEGIN {print "BEGIN", "BEGIN"}{print $1, $2}‘ /etc/passwd
awk -F : ‘BEGIN{print "BEGIN BEGIN"}{print $1,$2}‘ /etc/passwd
4.自定义分隔符:echo "111 222|333 444|555 666"|awk ‘BEGIN{RS="|"}{print $0}‘
原文:https://www.cnblogs.com/tester-D/p/13996284.html