2013-06-01 2 views
2

Мне просто нужна помощь и вы хотите узнать, возможно ли то, что я хочу. Вот мой файл выглядит какОтобразить результат в группе

 
COLUMN1 | COLUMN2 | COLUMN3 
-------------------------------------------- 
A=dog | B=354 | C=343 
A=cat | B=435 | B=334 
C=324 | A=cow | A=pig 

Иногда, мне нужно фильтровать подобный рисунок на конкретной области и отображать его на моем экране. Пример

grep -Po 'A=(\w+)' test.txt 

Тогда я буду получать

 
A=dog 
A=cat 
A=bird 
A=cow 
A=pig 

Но то, что я хотел бы спросить, если это возможно, чтобы отобразить другой столбец и показать ее рядом с первой колонки, вот мой пример, чтобы понять,

 
A=dog  B=354 
A=cat  B=435 
A=bird B=334 
A=cow 
A=pig 

Или иногда я хочу отображать 3-столбцы с соответствующей группой. Является ли это выполненным только с «Грепом»?

+1

нет. Работа grep заключается в том, чтобы находить вещи, а не создавать симпатичные диаграммы на вашем экране. –

+0

любое предложение? – Negx

+0

Откуда берется «птица»? А также, вы имеете в виду следующий столбец, если 'A = ...' находится в первом столбце/ничего, если 'A = ...' находится во 2-й или 3-й строке? – fedorqui

ответ

0

Просто хочу поделиться тем, что я сделал после нескольких часов поиска и не нашел простое решение:

$ Grep -PO 'A = (\ W +)' test.txt> a.txt
$ Grep -PO 'B = (\ d +)' test.txt> b.txt
$ пр -MTS a.txt b.txt

Вот это :)

Вы можете также сохранить это в .csv

$ пр -MTS: a.txt b.txt> combine.csv
* Примечание: двоеточие ":" Ваш разделитель.

+0

Обратите внимание, что это будет сканировать файл несколько раз. Если вы хотите сделать это за один проход, загляните в 'sed' или напишите утилиту на языке сценариев, например Perl. – BraveNewCurrency

Смежные вопросы