C Shell子串比较

时间:2014-02-25 21:41:38

标签: linux unix awk string-comparison csh

我的数据如下所示:

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

3 个答案:

答案 0 :(得分:1)

试试这个:

awk '$1~/^1/{print $2}' file.txt

您使用$1match operator)格式查看第一列(~),该模式查找以1/^1/)开头的行。如果是,则执行打印第二列的操作。

答案 1 :(得分:0)

我使用grepcut

grep ^1 data_file | cut -d' ' -f2

答案 2 :(得分:0)

使用jayplas代码,甚至可以缩短更多:

awk '/^1/&&$0=$2' file
file_name1
file_name5

$1中测试第一个字符,与字符串$0的第一个字符相同