![テキストファイルから行フィールドを抽出する[閉じる]](https://linux33.com/image/114221/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E8%A1%8C%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
次の値を含むテキストファイルの各行から3番目の値とすべての後続の値(つまり最初の2つの値を削除)を抽出するにはどうすればよいですか?
1 1112 0 1 2
2 1111 0 2
3 1211 1 0 3
1 1112
を無視して値だけを取得したいです2 1111
。3 1211
0 1 2
0 2
1 0 3
これらすべては、私が各行の3番目の値のセットと呼ばれるものに属します。
答え1
単純な表形式のように見えますが、私が提案できるのは、コマンドを使用してスペースでcut
区切られた最初の2つの列を削除することです。
$ echo "01 1112 0 1 2" | cut -d " " -f 3-
ファイルと共に使用します。
$ cut -d " " -f 3- file.txt > output_expected.txt
試してみてください
答え2
楽しみにして正規表現のアプローチは次のとおりです。
$ sed -r 's/^(.[^ ]* ){2}//g' <<<$'1 1112 0 1 2\n2 1111 0 2\n3 1211 1 0 3'
0 1 2
0 2
1 0 3