【shell脚本】常用工具的学习grep、sed、awk、cut
2017-04-25 16:18
746 查看
grep
功能:
查找过滤工具,查找或者过滤出符合某个模式的字符串,可以和正则表达式搭配使用。
所以本篇博客适合有正则表达式基础的读者阅读哦~。
用法:
其中,egrep相当于grep -E,表示采用扩展(Extend)的正则表达式语法。即对于? + {} () | 这些字符取其特殊含义。直接使用grep表示采用正则表达式基准的(Basic)正则表达式语法。
fgrep相当于grep -F,表示不搜索正则表达式模式,匹配固定字符串,匹配到了会输出整行。
eg:从file文件中找出合法的手机号码:
sed
简介:
sed是一款流式文本编辑器,它会将文本中的内容一行一行读出来,看是否与正则表达式匹配,如果匹配则执行对应的操作,否则丢弃或输出然后读取下一行。可以一次处理多个文件,默认按照基准模式(Basic)匹配
用法:
其中,pattern 表示对要匹配的行的描述,即正则表达式,action表示匹配到了之后对应的操作。
1、将匹配到的内容打印出来,对应的action:p
可以看到,sed将文件所有内容都打印了出来,只不过匹配到了的打印了两次。想只打印匹配到的行加上‘-n’参数即可:
2、将匹配到的内容删除,对应的action:d
说明,sed并不会修改原文件。如果想直接修改原文件,需要加上‘-i’参数即可:
3、将匹配到的行内的某一模式的字符串替换,对应的action:s
用法与之前有一点小差异:
表示,匹配符合pattern的行,将该行第一个匹配pattern1的字符串替换为pattern2。最后加g表示全局替换。
eg:
awk
简介:
awk是比sed更加强大的文本编辑器,不仅可以按行处理文本,也可以按列处理文本。同时还是一门脚本语言,有像C语言一样的循环和分支,有些部分和C语言十分相似。
用法:
pattern是正则表达式,actions是⼀系列操作。 awk程序⼀⾏⼀⾏读出待处理⽂件,如果某⼀⾏与pattern匹配,或者满⾜condition条件,则执⾏相应的actions,如果⼀条awk命令只 有actions部分,则actions作⽤于待处理⽂件的每⼀⾏。
1、awk按列打印。action:print/printf
除了print,还可以用printf,用法和C语言一模一样。print后所跟的$2表示打印第二列,$1表示第一列,$0表示所有的列。awk默认的列分隔符是连续的空格或者Tab,也可以自己制定列分隔符, 参数:-F后跟制定的符号:
2、awk脚本
脚本第一行:#!/usr/bin/awk -f 指定awk解释器。
awk会先执行BEGIN标签内的语句,然后读取指定文件内容,执行花括号内的语句,读取完毕执行END标签内的语句。
cut
简介:
cut以行为处理对象,负责数据的剪切。
用法:
eg:
可以看到,按字符切割时,一个字母和一个汉字都算是一个字符。除此之外,cut可以指定域分隔符,切割指定的域:
-d 选项指定域分隔符,-f选项指定切割第几个域。
功能:
查找过滤工具,查找或者过滤出符合某个模式的字符串,可以和正则表达式搭配使用。
所以本篇博客适合有正则表达式基础的读者阅读哦~。
用法:
grep '正则表达式' 操作的文件名 egrep '正则表达式' 操作的文件名 grep -E '正则表达式' 操作的文件名 grep -F '匹配的字符串' 操作的文件名 fgrep '匹配的字符串' 操作的文件名
其中,egrep相当于grep -E,表示采用扩展(Extend)的正则表达式语法。即对于? + {} () | 这些字符取其特殊含义。直接使用grep表示采用正则表达式基准的(Basic)正则表达式语法。
fgrep相当于grep -F,表示不搜索正则表达式模式,匹配固定字符串,匹配到了会输出整行。
eg:从file文件中找出合法的手机号码:
sed
简介:
sed是一款流式文本编辑器,它会将文本中的内容一行一行读出来,看是否与正则表达式匹配,如果匹配则执行对应的操作,否则丢弃或输出然后读取下一行。可以一次处理多个文件,默认按照基准模式(Basic)匹配
用法:
sed '/pattern/action'
其中,pattern 表示对要匹配的行的描述,即正则表达式,action表示匹配到了之后对应的操作。
1、将匹配到的内容打印出来,对应的action:p
可以看到,sed将文件所有内容都打印了出来,只不过匹配到了的打印了两次。想只打印匹配到的行加上‘-n’参数即可:
2、将匹配到的内容删除,对应的action:d
说明,sed并不会修改原文件。如果想直接修改原文件,需要加上‘-i’参数即可:
3、将匹配到的行内的某一模式的字符串替换,对应的action:s
用法与之前有一点小差异:
sed '/pattern/s/pattern1/pattern2/' sed '/pattern/s/pattern1/pattern2/g'
表示,匹配符合pattern的行,将该行第一个匹配pattern1的字符串替换为pattern2。最后加g表示全局替换。
eg:
awk
简介:
awk是比sed更加强大的文本编辑器,不仅可以按行处理文本,也可以按列处理文本。同时还是一门脚本语言,有像C语言一样的循环和分支,有些部分和C语言十分相似。
用法:
awk '/pattern/{actions}'
pattern是正则表达式,actions是⼀系列操作。 awk程序⼀⾏⼀⾏读出待处理⽂件,如果某⼀⾏与pattern匹配,或者满⾜condition条件,则执⾏相应的actions,如果⼀条awk命令只 有actions部分,则actions作⽤于待处理⽂件的每⼀⾏。
1、awk按列打印。action:print/printf
除了print,还可以用printf,用法和C语言一模一样。print后所跟的$2表示打印第二列,$1表示第一列,$0表示所有的列。awk默认的列分隔符是连续的空格或者Tab,也可以自己制定列分隔符, 参数:-F后跟制定的符号:
2、awk脚本
脚本第一行:#!/usr/bin/awk -f 指定awk解释器。
awk会先执行BEGIN标签内的语句,然后读取指定文件内容,执行花括号内的语句,读取完毕执行END标签内的语句。
cut
简介:
cut以行为处理对象,负责数据的剪切。
用法:
cut -b //按字节切割 cut -c //按字符切割
eg:
可以看到,按字符切割时,一个字母和一个汉字都算是一个字符。除此之外,cut可以指定域分隔符,切割指定的域:
-d 选项指定域分隔符,-f选项指定切割第几个域。
相关文章推荐
- shell脚本---grep、awk、sed工具
- 几个常用的文本处理shell 命令:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk
- Linux的shell脚本grep、sed、awk练习和diff、patch、cut、sort介绍
- shell工具——cut、tr、grep、sort、uniq、re、sed、awk
- sed && awk工具 及一些常用的shell脚本
- shell常用工具使用——awk、grep以及sed
- shell脚本抽取制定字符串、grep+awk+cut+sed
- Linux下sed,awk,grep,cut,find等常用命令介绍
- shell脚本学习:不得不细心之sed和grep,sort和uniq,从细节看“认真”
- Shell中的grep、awk和sed的常用命令和语法
- 一个学习grep、tee、awk、cut命令的很好的示例脚本
- awk grep sed cut学习
- Shell中的grep、awk和sed的常用命令和语法
- Shell脚本学习笔记(七)--sed和awk
- shell删除文本技巧 —— grep, cut, head, sed, awk
- Shell脚本学习笔记(七)--sed和awk
- Shell中的grep、awk和sed的常用命令和语法
- Shell中的grep、awk和sed的常用命令和语法
- shell脚本抽取文本文件中指定字符串的方法:sed+grep方法、awk+grep方法(必要时可以联合sed以及grep)、grep+cut方法
- shell脚本awk, sed, cut的妙用