TSV
したがって、次のファイルがあります。
Hello world how are you
1 2 3 4 5
6 7 8 9 0
(上記の手紙のおもちゃの例では、各行のすべての内容をスペースで区切っています。)
私の目標は、「how」と「are」を含む列を最初の行値として取得することです。したがって、出力は次のようになります。
how are
3 4
8 9
問題は、これらのパターン(「どのように」や「is」)がどの列に表示されるのかわからないことです。たとえば、TSV
ファイルは実際には次のように配置できます。
Hello how world are you
1 3 2 4 5
6 8 7 9 0
たとえば、私はこれを処理する方法を知っていますがpython
(ファイルを変更して必要な行を選択するだけです)、シェルでこれを実行したいのです(理由のため)。問題はどうするか分からないということです。コマンドラインユーティリティを使用して転置も可能であることを知っています(例を参照)。ここ)しかし、可能であれば、そのような大きなコードは避けたいと思います。私の初期の単純な解決策は単にgrep
「どのように」と「is」でしたが、それは明らかにファイル全体を返すので、それはブロックされ続けます。
どんな助けやアドバイスにも感謝します!
編集:このコンピュータに新しいツールをインストールする権限がないことに注意してください。私はそれが実際に何を提供しているのか分からない。役立つ場合はこれですScientific Linux 7.3 (Nitrogen)
。
ベストアンサー1
使用csvtool
1:
csvtool -t ' ' -u ' ' namedcol how,are file
-t Input separator char.
-u Output separator char.
namedcol <names>
Assuming the first row of the CSV file is a list of column headings,
this returned the column(s) with the named headings.
^sudo apt install csvtool