我的数据如下所示:
1xxxxxx file_name1
0xxxxxx file_name2
0xxxxxx file_name3
0xxxxxx file_name4
1xxxxxx file_name5
0xxxxxx file_name6
我想只打印文件名,第一列以“1”开头。
即,
awk '{if($1 contains '1') then print $2}' file.txt
但是,我还不知道如何实现比较语法
也许可以使用通配符方法?
awk '{if($1 == "1"*) then print $2}' file.txt
答案 0 :(得分:1)
试试这个:
awk '$1~/^1/{print $2}' file.txt
您使用$1
(match operator
)格式查看第一列(~
),该模式查找以1
(/^1/
)开头的行。如果是,则执行打印第二列的操作。
答案 1 :(得分:0)
我使用grep
和cut
:
grep ^1 data_file | cut -d' ' -f2
答案 2 :(得分:0)
使用jayplas代码,甚至可以缩短更多:
awk '/^1/&&$0=$2' file
file_name1
file_name5
在$1
中测试第一个字符,与字符串$0
的第一个字符相同