ヘッダー(最初の行)が別のテキストファイル(「strings.txt」)にリストされている特定の文字列と一致するテキストファイル(「columns.txt」)からタブ区切りの列を抽出したいと思います。
「columns.txt」は次のようになります。
rs2438689 rs54666437 rs9877702046 rs025436779...
0 0 0 1
1 1 2 2
0 1 2 0
... ... ... ...
"strings.txt"は次のとおりです。
rs2438689
rs9877702046
...
出力テキストファイル "output.txt"は次のようになります(タブ区切り)。
rs2438689 rs9877702046...
0 0
1 2
0 2
... ...
awkを使ってこれを行う方法についての提案はありますか?ありがとうございます!
ベストアンサー1
Awkの代わりにカンマで区切られた列名のリストを作成し、それをstrings.txt
sリストとして使用するにはどうすればよいですか?namedcol
csvtool
$ csvtool -t TAB -u TAB namedcol "$(paste -sd, < strings.txt)" columns.txt
rs2438689 rs9877702046
0 0
1 2
0 2
... ...
またはcsvcut/csvformat
Pythonに基づく同様のものcsvkit
:
$ csvcut -tc "$(paste -sd, < strings.txt)" columns.txt | csvformat -T
rs2438689 rs9877702046
0 0
1 2
0 2
... ...