您的位置:首页 > 运维架构 > Linux

linux常用命令之 sed grep awk

2017-01-24 13:51 731 查看
sed经常用法:

1、替换和修改

sed -n 's/item/pre_item &/p' quot.txt

原内容:have a item

执行后:have a pre_item item

2、从文本读文件附加到令以文本后

 sed '/Miss./r tmp.txt' quote.txt

将文本quote.txt中Miss所在行后附加tmp.txt内容。

3、处理控制符

sed 's/##*//g' file.txt      //去除##

sed 's/^0*//g' file.txt      //去除行首为0

sed 's/^M//g' file.txt       //去除控制符

cat file.txt | sed 's/##*//g | s/^0*//g | s/^M//g   //一起处理

sed 's/^[0-9]//g' file.txt   //去除行首数

4、显示行

sed '2p' quote.txt  //显示所有行,随后显示第二行

sed -n '2p' quote.txt //仅显示第二行

sed -n '1,3p' quote.txt //打印1-3行

sed -n '/Find/'p quote.txt  //打印匹配Find行

sed -n '$p' quote.txt       //打印最后一行

sed -n '1,$p' quote.txt    //打印所有行,

sed -n '/.*ing/'p quote.txt  //任意匹配字符

sed -n '/find/=' quot.txt  //打印行号

sed -n -e '/find/=' quot.txt //打印行号和文本

5、删除文本

sed '1d' quote.txt   //删除第一行

awk命令

awk -F:'commands' input file

1、抽取所有域,$0表示所有域,$1第一域
awk 'print $0' quote.txt 

2、输出到文件中

awk '{print $0}' quote.txt | tee file.txt  

3、追加信息在头

awk 'BEGIN {print "Name belt\n......"} {print $1"\t"$4}' quot.txt

4、追加信息尾
awk 'BEGIN {print "Name \n..."} {print $1} END {print "end-of"}' quote.txt

5、查找匹配字符并输出所有字符中含name的行

awk '{if($0~/name/) print $0}' quote.txt  

6、 精确匹配

awk '$2=="name" {print $0}' quote.txt 

7、输出不匹配行

awk '$0 !~/name/' quote.txt     

8、小于等于          

awk '{if($2<=$3) print $1}' quote.txt      

9、大小写

awk '/[Aa]sk/' quot.txt                  

10、 ^..表示首三个字母

awk '$1 ~/^..a/' quot.txt                

11、 或关系匹配

awk '$1~/(ask|bid)/' quote.txt          

12、输出记录数,内置

awk '{print NR}' quote.txt  

NR:文件记录数

NF:记录域个数

OFS:输出域分隔符

awk '{name=$1 }' quot.txt                 //设置输出到变量中

grep用法

1、行匹配,输出有几行数

grep -c "name" quote.txt          

2、 输出行号+行内容

grep -n "name" quote.txt   

3、输出行内容

grep "name" quot.txt           

4、输出非匹配行

grep -v "name" quot.txt           

5、 精确匹配

grep "name\>" quot.txt   

6、 忽略大小写         

grep -i "name" quot.txt          

7、抽取name或者namb

grep 'nam[ab]' quot.txt         

8、 表示行首不是na的行

grep '^[^na]' quot.txt        

9、 不分大小写,并包含a的

grep ’[nN]ame' quot.txt | grep a 

10、 匹配任意字符

grep '[a-z]..c' quot.txt          

11、 包含数字4,至少出现2次

grep '4\{2,\}' quot.txt            

12、 与或

grep -E 'a|b' quot.txt            

13、 特殊字符钱加\

grep '\.' quot.txt                

14、查询进程name

ps ax|grep "name"                  

打印行号  awk
'{print NR":"$0}'

                     打印偶数行、奇数行

 (1)  awk '{print $0 > NR%2}'  file

 (2)  sed -n '1~2p'  file   

          sed -n '2~2p' file

 (3)   sed -n 'p;n'  file

       sed -n 'n;p'  file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: