Shell获得一行中的特定单词

时间:2015-03-26 11:12:03

标签: bash shell unix

我有一个文件

     tadjag:x:60697:100:Name Surname IF-3/4 2015-02-02:/export/home/tadjag:/bin/bash
        linbul:x:60698:100:Name2 Surname2 IF-3/4 2015-02-02:/export/home/linbul:/bin/bash
        sarvis:x:60699:100:Name3 Surname3 IF-3/2 2015-02-02:/export/home/sarvis:/bin/bash
        deigru:x:60701:100:Name4 Surname4 IF-3/4 2015-02-02:/export/home/deigru:/bin/bash
        tauilc:x:60702:100:Name5 Surname5 IF-3/3 2015-02-02:/export/home/tauilc:/bin/bash
    ...
    ...
    ...
    ...

如果他们来自IF-3/4,我想只接受姓名和姓氏。所以我的结果应该是

Name Surname
Name2 Surname2
Name4 Surname4

我做了什么

awk -F: '{print $5}' myFile

所以我的输出是

Name Surname IF-3/4 2015-02-02
...
...

如果他们来自IF-3/4

,那么只能获得姓名和姓氏吗?

2 个答案:

答案 0 :(得分:1)

使用awk的split函数拆分第5列上存在的空格,并再次将拆分值存储到关联数组a。因此a[1]包含第一个单词(名称),a[2]包含第二个单词(姓氏)。

$ awk -F: '{split($5,a,/[[:blank:]]+/); print a[1],a[2]}' file
Name Surname
Name2 Surname2
Name3 Surname3

答案 1 :(得分:0)

awk -F'[: ]' 'NR<2||!(NR%2){print $5,$6}' file

Name Surname
Name2 Surname2
Name4 Surname4