grep、sed、awk
awk、grep、sed
是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。
三者的功能都是处理文本,但侧重点各不相同,其中属awk
功能最强大,但也最复杂:
grep
更适合单纯的查找或匹配文本sed
更适合编辑匹配到的文本awk
更适合格式化文本,对文本进行较复杂格式处理。
grep(Global Regular Expression Print)
名称来源于:Globally search a Regular Expression and Print
每次看相关文章,总是一上来what is it
,然后就是铺天盖地的how to use it
,小白的我就有疑问了:why use grep?
其核心功能是搜索/查找,若找到则会标红,没有找到则没有任何输出。
使用方法是 ① 从文件夹列表里面(通过单词或者字符串)搜索相应的文件夹,或者 ② 直接从文本里面搜索相应的单词或字符串。
注意:搜索(非单个单词的)字符串需要加引号(单双引号皆可)!
这里从最常用用法说起:
-
搜索【从其他命令行工具管道传输的输出】
suer@suer-virtual-machine:~/grep_test$ ls Desktop Downloads MLcode ML code Music pictures
suer@suer-virtual-machine:~/grep_test$ ls | grep MLcode # 从 ls 返回的结果中搜索 MLcode
suer@suer-virtual-machine:~/grep_test$ ls | grep ML code grep: code: No such file or directory # 很神奇:对于本来存在却没有加引号的文件夹,这里会有提示 suer@suer-virtual-machine:~/grep_test$ ls | grep 'ML code' # 必须加引号 ML code
-
直接搜索【文档】
Monday Tuesday Wednesday Thursday Friday test.sh (END)
suer@suer-virtual-machine:~/grep_test$ grep Friday test.sh Friday
先挖个坑,以后有时间再总结!
sed
awk
适合处理行式文本(一行一行循环处理)
主要参考: