2

私はただ助けが必要で、私が望むことが可能かどうか知りたいと思っていました. 私のファイルは次のようになります

COLUMN1 | COLUMN2 | COLUMN3
--------------------------------------------
A=犬 | B=354 | C=343
A=猫 | B=435 | B=334
C=324 | A=ウシ | A=豚

場合によっては、特定のフィールドで同様のパターンをフィルタリングして画面に表示する必要があります。例

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

それから私は得る

A=犬
A=猫
A=鳥
A=ウシ
A=豚

しかし、私が尋ねたいのは、可能であれば別の列を表示して最初の列の横に表示することです。明確にするために私の例を次に示します

A=犬 B=354
A=猫 B=435
A=鳥 B=334
A=ウシ
A=豚

または、それぞれのグループで 3 列を表示したい場合もあります。これは「Grep」だけで実行できますか?

4

1 に答える 1

0

数時間検索した後、簡単な解決策が見つからなかったことを共有したいだけです。

$ grep -Po 'A=(\w+)' test.txt > a.txt
$ grep -Po 'B=(\d+)' test.txt > b.txt
$ pr -mtS a.txt b.txt

それでおしまい :)

これを .csv に保存することもできます

$ pr -mts: a.txt b.txt > Combine.csv
*注: コロン ":" は区切り文字です。

于 2013-06-01T10:05:30.047 に答える