加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux 三剑客命令(grep,sed ,awk)

发布时间:2020-12-14 01:34:56 所属栏目:Linux 来源:网络整理
导读:grep 命令 :强大的文本’搜索’工具 ???1.grep???-n???‘word‘??file_name 在file_name文件中找到word所在的所有行并显示。-n 为显示行号。 ????2.grep???‘w[ea]ll‘???file_name 在file_name文件中找到wall 或者是well 所在的所有行并显示 ????3.grep???
grep 命令 :强大的文本’搜索’工具
???1.grep???-n???‘word‘??file_name
在file_name文件中找到word所在的所有行并显示。-n 为显示行号。
????2.grep???‘w[ea]ll‘???file_name
在file_name文件中找到wall 或者是well 所在的所有行并显示
????3.grep????‘w[^e]ll‘???file_name
在file_name文件中找到”非well” 所在的所有行并显示
????4.grep???‘^The‘???file_name
在file_name文件中找到以The开头的所有行并显示(请与上一条命令进行区别)
????5. grep???????‘goo..le‘??????file_name
在file_name文件中找到goo(任意字符)(任意字符)le的所有行并显示(即总共七个字符)
???6.grep????‘g*g‘?????file_name
在file_name文件中找到g,gg,ggg等的所有行并显示(*代表重复前一个字符0~~无穷多次)
??7.grep???‘Ty{2,3}‘????file_name
在file_name文件中找到Tyy,Tyyy的所有行并显示(注意{}在 shell中有特殊含义,故需要转义)
? 8.grep -E ‘aaaa|bbbb‘? file_name
多条件查找
注意 : grep可以使用grep –color=always 来使得所查找的字符拥有特殊颜色,然后在执行source ~/.bashrc 来使得设置立即生效。
sed :实现数据的替换,删除,增加,选取等(以行为单位进行处理)
??1.sed????‘2,4d‘????file_name
删除file_name文件的2到4行
2.sed??‘2a liu .....
>shengxi is shuai !!!‘??file_name
在第二行下新增这样两行
3.sed???‘2,4c????ni han ma???a !!!‘????file_name
把file_name文件的2到4行,替换为ni han ma a !!
4.sed???‘2,5p‘ -n??file_name
把file_name文件的2到5行打印出来(不用-n 参数,就会重复输出2到5行)
5.sed??-i??‘s/a[t]./p_temp->/g‘?????file_name
把file_name文件中的a[t]. 全部替换为p_temp-> (-i 会直接将修改写入文件,[ ] 和 . 是特殊符号,需要用来转义一下)
awk : 以字段为单位进行处理(其实就是把一行的数据分割,然后进行处理)
先介绍一些关于awk的用法:
1.$0???代表一整行的数据
2.$1???代表第一个字段,用人的话来说就是第一列的数据
3.$2???以此类推
4.NF???每一行拥有的字段总数
5.NR???目前处理的是第几行的数据
6.FS???目前的分隔字符
7.命令格式 :awk???‘条件{命令1} 条件{命令2}...‘???file_name
具体命令:
????1. awk??????‘NR<6{print???$1??"t"??$2 }‘?????file_name??
把file_name 文件中的前五行的第一列,第二列的数据列出来 (以[tab]或空格键分隔)
? ? 2.awk???‘{print "该行数据为" $0 "t" "该行的字段总数为"??NF???"t"??"目前这是第几行"??NR}‘???file_name
? ? 3.??awk??????‘BEGIN{FS=":"}??$3<10{print $1 "t" $3}‘?????/etc/passwd
把/etc/passwd文件的第一列与第三列列出来(BEGIN可以让我们自己设置的分隔字符立即生效)
/etc/passwd 文件中第一列是帐户,第三列是UID(就是用户ID)。该文件以 : 号分隔,一行代表一个用户,记录关于用户的各种信息。
特殊说明:
? ? 1.print 默认带有换行符,printf 没有
? ? 2.像n,t,这种符号应该用双引号括起来
? ? 3.NR,NF等变量要用大写,并且不需要 $
三剑客命令总结:
-记住三个命令的运用形式
?????grep????‘字符‘???????文件
?????sed?????‘命令‘???????文件
?????awk????‘条件{命令}‘???文件
-死记一点,单引号内就是正则表达式的用法
重复一遍:单引号内一定是正则表达式,一定,一定!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读