行第30列的awk条件不工作

行第30列的awk条件不工作,awk,syntax,quotes,nawk,Awk,Syntax,Quotes,Nawk,我的输入文件如下所示 1,,B4,3000,Rushab,UNI,20130919T22:45:05+0100,20190930T23:59:59+0100,,kapeta,,6741948090816,2285917436,971078887,1283538808965528,20181102_20001,,,,,,,,,,,,,,,C 2,,B4,3000,Rushab,UNI,20130919T22:45:05+0100,20190930T23:59:59+0100,20181006T11

我的输入文件如下所示

1,,B4,3000,Rushab,UNI,20130919T22:45:05+0100,20190930T23:59:59+0100,,kapeta,,6741948090816,2285917436,971078887,1283538808965528,20181102_20001,,,,,,,,,,,,,,,C
2,,B4,3000,Rushab,UNI,20130919T22:45:05+0100,20190930T23:59:59+0100,20181006T11:57:13+0100,,vsuser,6741948090816,2285917436,971078887,1283538808965528,20181102_20001,,,,,,,,,,,,,,,H
1,,F1,100000,RAWBANK,UNI,20180416T15:25:00+0100,20190416T23:59:59+0100,,enrruac,,7522609506635,3101315044,998445487,1290161608965816,20181102_20001,,,,,,,,,,,,,,,C
4,,F1,100000,RAWBANK,UNI,20180416T15:25:00+0100,20190416T23:59:59+0100,20181007T22:25:13+0100,,vsuser,7522609506635,3101315044,998445487,1290161608965816,20181102_20001,,,,,,,,,,,,,,,H
我只想打印以“1”开头,以“C”结尾的行,所以我尝试使用下面的命令

awk -F, '$1=='1' && $31=='C'{print $0}' input_file.txt
但是我没有得到任何输出。

使用双引号:

awk -F, '$1=="1" && $31=="C"{print $0}' file


正如其他用户所建议的,这可以使用一个简单的正则表达式来完成。因此,您可以使用sed和awk

sed '/^1,.*,C$/!d' file

对于正则表达式:
awk'/^1.*C$/'文件
awk'/^1,.*,C$/'文件
请注意,
1
不需要引号。如果不添加分隔符,将出现错误匹配。比如说<代码>11,…,NotC也将匹配<代码>/^1,.*,C$/!d应该可以解决这个问题。
sed '/^1,.*,C$/!d' file