Linux三剑客(grep、sed、awk)基本使用技巧!老男孩Linux运维培训
老男孩IT教育
常见问题
2022年6月8日 11:30
如果你恰巧是一个经常在服务器上游走的后端,或者正在学习、使用Linux系统,那避免不了熟悉各种命令行的操作,其中,grep、sed、awk被称为linux三剑客,其使用频繁,功能强大,请看下文:
如果你恰巧是一个经常在服务器上游走的后端,或者正在学习、使用Linux系统,那避免不了熟悉各种命令行的操作,其中,grep、sed、awk被称为linux三剑客,其使用频繁,功能强大,请看下文:
一、grep命令
-n:额外输出行号,例如过滤出每一行包含“学”的记录;
-v:排除匹配的行,例如排除包含“学”的行记录;
-E:支持扩展正则匹配。grep的时候,我们可以按照正则表达式来进行匹配,但在需要扩展正则匹配时,要通过-E指定才能生效。常见的或操作。
-l:只输出有匹配行的文件名。有时候,我们并不需要输出匹配的行记录,仅仅只是需要知道匹配到了行记录的文件名;
-R:递归匹配目录中的文件内容。有时候,在一个目录中我们并不知道哪个文件内容包含我们想要的结果,此时,可以查找整个目录,输出匹配的文件名以及行记录;
-A:通过-A(after)指定输出匹配行后的额外行数,例如,想要额外输出包含"青"的行记录后一行,可以指定-A1
二、sed命令
sed的各项操作需要指定一个特定的动作,查找需要制定一个动作为p(print),例如打印出第三行的记录,需要指定行号加动作3p;
这里必须指定一个选项-n。因为sed
的默认行为是遍历文本文件的每一行并输出每一行,假如不带-n
选项,第三行会输出两次=默认输出一次+命令行指定输出一次。
所以-n
的作用是取消sed
的默认输出行为, 一般都只与p组合使用。利用sed
的默认输出行为,我们可以模拟复制每一行的操作,有时候在特定场景下非常有用;
sed的增加动作有三种:
i:在指定行的上方增加一行;
a:在指定行的下方增加一行;
c:在指定行的地方增加一行,原有行会被覆盖
三、awk命令
awk
可以通过NR(Number of Record)
指定行号,输出特定的行,也可以按行号范围输出,可以使用{print $列号}
取出列值,awk
取列时,默认是空格为分隔符,可以通过-F
指定分隔符。
老男孩教育Linux运维云计算课程汇集了虚拟化、云计算、安全攻防、Python开发、SRE等技术,课堂效率高、内容丰富全面,由浅入深,循序渐进,帮助学员稳扎稳打,夯实基础,在有限的时间内帮助学员高效提升,成为符合企业需求的技术型人才。
推荐阅读:
