Linux C壳子串比较

Linux C壳子串比较,linux,unix,awk,string-comparison,csh,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"*) th

我的数据如下所示:

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

试试这个:

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

您可以使用
匹配运算符
~
)检查第一列(
$1
),该模式查找以
1
/^1/
)开头的行。如果为真,则执行打印第二列的操作

我会使用
grep
cut

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

使用jayplas代码,这甚至可以进一步缩短:

awk '/^1/&&$0=$2' file
file_name1
file_name5
测试
$1
中的第一个字符将与字符串
$0

的第一个字符相同:
awk'$1~/^1/&$0=$2'file.txt