grep 与 awk 有什么区别?
答案:4 悬赏:80 手机版
解决时间 2021-01-29 07:36
- 提问者网友:精神病院里
- 2021-01-28 18:40
grep 与 awk 有什么区别?
最佳答案
- 五星知识达人网友:山君与见山
- 2021-01-28 19:06
grep基本是以行为单位处理文本的;
而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
二者都支持正则匹配。追问grep -Eo '[0-9a-zA-Z_]+@[0-9a-zA-Z_\.]+' y.txt //改为awk怎么改?!追答首先要理解这个grep语句。
-E:扩展的grep,即相当于egrep,这样才支持正则中的+。
-o:只输出正则匹配的字符串。
我说过awk也支持正则,所以用awk当然也可以。为学习而练习,没什么错。
awk '/[0-9a-zA-Z_]+@[0-9a-zA-Z_\.]+/{print}' y.txt
注:由于机器上暂时没有环境,未经测试。如有错误,请告知,我再试着修改。追问操作是成功的!
表达式中的 /啥意思?转义后面的[ 与{? 为啥后面的] }不转义?追答格式是这样的:/RE/
两个/中间是正则表达式,匹配该正则表达式的话才执行后面大括号里的操作print。
\ 转义只对紧随其后的一个字符点号.起作用。点号.本身在正则表达式里是有特殊含义的,表示任意一个字符,要去除其特殊含义,表示点号本身,才需要转义。追问// 匹配正则表达式, ` ` 是啥意思?追答哪里有 ` ` ?这里只有 ' ' 啊。
' ' 就是单引号,没啥特殊含义。
` ` 表示优先执行里面的命令,表示优先级而已。在Bash里可以用 $( ) 来替代。
这个已经不属于此问题的范畴了。
明天起一段时日内我不能上网了,有问题请留言,我看到再回答。追问为啥这里要用优先级呀????追答不再回答。你果然如一楼所言,告诉你一个你问下一个。没完没了。
这里没有用 ` `,用的是 ' ',请看清。
诚心求教的话,加百度hi。不在这里盖楼了。
而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
二者都支持正则匹配。追问grep -Eo '[0-9a-zA-Z_]+@[0-9a-zA-Z_\.]+' y.txt //改为awk怎么改?!追答首先要理解这个grep语句。
-E:扩展的grep,即相当于egrep,这样才支持正则中的+。
-o:只输出正则匹配的字符串。
我说过awk也支持正则,所以用awk当然也可以。为学习而练习,没什么错。
awk '/[0-9a-zA-Z_]+@[0-9a-zA-Z_\.]+/{print}' y.txt
注:由于机器上暂时没有环境,未经测试。如有错误,请告知,我再试着修改。追问操作是成功的!
表达式中的 /啥意思?转义后面的[ 与{? 为啥后面的] }不转义?追答格式是这样的:/RE/
两个/中间是正则表达式,匹配该正则表达式的话才执行后面大括号里的操作print。
\ 转义只对紧随其后的一个字符点号.起作用。点号.本身在正则表达式里是有特殊含义的,表示任意一个字符,要去除其特殊含义,表示点号本身,才需要转义。追问// 匹配正则表达式, ` ` 是啥意思?追答哪里有 ` ` ?这里只有 ' ' 啊。
' ' 就是单引号,没啥特殊含义。
` ` 表示优先执行里面的命令,表示优先级而已。在Bash里可以用 $( ) 来替代。
这个已经不属于此问题的范畴了。
明天起一段时日内我不能上网了,有问题请留言,我看到再回答。追问为啥这里要用优先级呀????追答不再回答。你果然如一楼所言,告诉你一个你问下一个。没完没了。
这里没有用 ` `,用的是 ' ',请看清。
诚心求教的话,加百度hi。不在这里盖楼了。
全部回答
- 1楼网友:野味小生
- 2021-01-28 22:07
个人理解。
grep:查找。
awk:查找及修改。
相对而言,awk更为强大。
grep:查找。
awk:查找及修改。
相对而言,awk更为强大。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯