awk /[^liuyifei]/ file.txt        ###########会剔除掉yi liu的这些行-----------------------------------后续待解答 测试如下:

[root@yami test]# cat >>/yang<<eof

> liuyifei

> liushaoqi

> maozedong

> caishaofen

> renzhengfei

> yi

> liu

> fei

> eof

[root@yami test]# cd /

[root@yami /]# cat yang

liuyifei

liushaoqi

maozedong

caishaofen

renzhengfei

yi

liu

fei

[root@yami /]# awk /[^liuyifei]/ yang

liushaoqi

maozedong

caishaofen

renzhengfei

[root@yami /]# awk /[^liuyifei]/ yang|wc -l

4

[root@yami /]# wc -l yang 

8 yang

[root@yami /]# 

结果:liuyifei liu yi fei都被剔除,过滤还是grep好



awk '{if(NR>19 && NR<31) printf $1 "\n"}' file.txt 

    打印没有空格的文本第19到31行


chkconfig --list |grep 3:on |awk '{print $1}'##################取出服务在3级别为on的选项,awk默认以空格为分隔符 chkconfig中的项皆为deamon,可在/etc/init.d中查看到


ls -l |awk '/^d/' ###########过滤出所有目录,默认打印$0  ls -l |grep ^d 过滤目录 

ls -l |awk '/^d/{print $0}' ########作用同上

awk -F '[ ,]' '{print $1,$NF}' x.txt #############多分隔符用awk,以空格和,作为分隔符 打印第一个域和最后一个域

awk '{print NR}' /etc/services|tail -1 #############查询services有多少行,NR显示行号

    cat -n /etc/services |tail -n 1

    cat -n /etc/services |awk '{print $1}'|tail -1

    nl /etc/service|cut -d " " -f 1|tail -1

 awk -F ":" '{print $1,$3}' /etc/passwd ###########显示用户名和UID

ifconfig eth0|grep 'inet addr'|awk -F '[ :]+' '{print $4}'#####awk中的+号,把重复出现的分隔符,当作一个分隔符处理

    

    [root@yami /]# cat >yang<<eof

    > ############i********

    > ########am00000000000

    > ######of#########

    > eof

    [root@yami /]# cat yang

    ############i********

    ########am00000000000

    ######of#########

    [root@yami /]# awk -F '[#*0]' 'print $2'

    awk: print $2

    awk: ^ syntax error

    [root@yami /]# awk -F '[#*0]' '{print $2}'

    ^C

    [root@yami /]# awk -F '[#*0]' '{print $2}' yang

    

    

    

    [root@yami /]# awk -F '[#*0]+' '{print $2}' yang

    i

    am

    of

    [root@yami /]# 

ifconfig eth0 | awk '{NR==2}' ##############awk NR==2过滤行

    

ifconfig eth0|awk -F '[ :]+' 'NR==2{print $4}'

awk 中NF为当前行记录域或列的个数 有一个$NF表示最后一行