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