Grep определенные поля в файлах, а также распечатать имя файла для строки - PullRequest
1 голос
/ 17 августа 2010

у меня есть один файл. он содержит такие поля

i / p файлы:

a.txt
9842,5003,a,a,100
9942,5003,a,a,100
9852,5003,a,a,100
98456,5003,a,a,100
9742,5003,a,a,100

b.txt
7842,5003,a,a,100
7942,5003,a,a,100
7852,5003,a,a,100
98456,5003,a,a,100
7742,5003,a,a,100

c.txt
8842,5003,a,a,100
9842,5003,a,a,100
8852,5003,a,a,100
88456,5003,a,a,100
8742,5003,a,a,100

Операция должна быть сделана: Мне нужно grep определенных строк в вышеуказанном входном файле (a.txt, b.txt & c.txt) выходные строки должны содержать все поля, а также имя файла как последнее поле

формат o / p: скажем, я grep строки начинаются с "9" означает, что вывод будет необходим в формате ниже

9842,5003,a,a,100,a.txt
9942,5003,a,a,100,a.txt
9852,5003,a,a,100,a.txt
98456,5003,a,a,100,a.txt
9742,5003,a,a,100,a.txt
98456,5003,a,a,100,b.txt
9842,5003,a,a,100,c.txt

Ответы [ 2 ]

1 голос
/ 17 августа 2010
grep -H '^9' a.txt b.txt c.txt | awk -F : '{print $2","$1;}'

Grep для строк, начинающихся с 9, используя флаг -H для печати имен файлов, затем используйте awk, чтобы получить нужный форматФлаг -F для awk меняет разделитель полей на ':'

0 голосов
/ 17 августа 2010

вы можете просто использовать одну команду awk, не нужно grep.grep и awk являются дополнениями.

awk '/^9/{print $2","$1","FILENAME}' [abc].txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...