условие awk для 30-го столбца строки не работает - PullRequest
0 голосов
/ 07 ноября 2018

Мой входной файл выглядит так, как показано ниже,

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

но я не получаю вывод.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Как и предполагали другие пользователи, это можно сделать с помощью простого регулярного выражения. Таким образом, вы можете использовать sed, а также awk

sed '/^1,.*,C$/!d' file
0 голосов
/ 07 ноября 2018

Используйте двойные кавычки:

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

или

awk -F, '$1=="1" && $31=="C"' file 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...