aay*_*ubi 176
简短定义:
grep:搜索文件中的特定术语
#usage
$ grep This file.txt
Every line containing "This"
Every line containing "This"
Every line containing "This"
Every line containing "This"
$ cat file.txt
Every line containing "This"
Every line containing "This"
Every line containing "That"
Every line containing "This"
Every line containing "This"
Run Code Online (Sandbox Code Playgroud)
现在awk和sed完全不同grep.
awk并且sed是文本处理器.他们不仅能够在文本中找到您要查找的内容,还能够删除,添加和修改文本(以及更多内容).
awk主要用于数据提取和报告.sed是一个流编辑器
每个都有自己的功能和专业.
示例
Sed
$ sed -i 's/cat/dog/' file.txt
# this will replace any occurrence of the characters 'cat' by 'dog'
Run Code Online (Sandbox Code Playgroud)
AWK
$ awk '{print $2}' file.txt
# this will print the second column of file.txt
Run Code Online (Sandbox Code Playgroud)
基本awk用法:
计算总和/平均/最大/最小/等.什么你可能需要.
$ cat file.txt
A 10
B 20
C 60
$ awk 'BEGIN {sum=0; count=0; OFS="\t"} {sum+=$2; count++} END {print "Average:", sum/count}' file.txt
Average: 30
Run Code Online (Sandbox Code Playgroud)
我建议你读这本书:Sed&Awk:2nd Ed.
它将帮助您在任何类似unix的环境中成为熟练的sed/awk用户.
Kur*_*man 52
如果要快速搜索文件中匹配的行,Grep非常有用.它还可以返回一些其他简单信息,如匹配行号,匹配计数和文件名列表.
Awk是一种完整的编程语言,它围绕读取CSV样式文件,处理记录以及可选地打印出结果数据集而构建.它可以做很多事情,但它不是用于简单任务的最简单的工具.
当您想要基于正则表达式更改文件时,Sed非常有用.它允许您轻松匹配部分线条,进行修改并打印出结果.它的表现力不如awk,但这使得它更容易用于简单的任务.它有许多你可以使用的复杂操作符(我认为它甚至是完整的),但一般来说你不会使用这些功能.
Ken*_*ent 32
我只想提一件事,有很多工具可以做文本处理,例如sort,cut,split,join,paste,comm,uniq,column,rev,tac,tr,nl,pr,head,tail ...... ..
他们非常方便,但你必须学习他们的选择等.
学习文本处理的懒惰方式(不是最好的方法)可能是:只学习grep,sed和awk.使用这三个工具,您可以解决近99%的文本处理问题,而不需要记住上面不同的cmds和选项.:)
而且,如果你已经学会并使用了三者,你就会知道其中的差别.实际上,这里的区别意味着哪个工具擅长解决什么样的问题.
更懒惰的方式可能是学习脚本语言(python,perl或ruby)并使用它进行每个文本处理.
| 归档时间: |
|
| 查看次数: |
121989 次 |
| 最近记录: |