1. ホーム
  2. linux

[解決済み] テキストファイルのn番目の列を取り出す

2023-01-29 17:15:45

質問

テキストファイルがあります。

1 Q0 1657 1 19.6117 Exp
1 Q0 1410 2 18.8302 Exp
2 Q0 3078 1 18.6695 Exp
2 Q0 2434 2 14.0508 Exp
2 Q0 3129 3 13.5495 Exp

こんな感じで、各行の2番目と4番目の単語を取りたい。

1657 19.6117
1410 18.8302
3078 18.6695
2434 14.0508
3129 13.5495

このコードを使っています。

 nol=$(cat "/path/of/my/text" | wc -l)
 x=1
 while  [ $x -le "$nol" ]
 do
     line=($(sed -n "$x"p /path/of/my/text)
     echo ""${line[1]}" "${line[3]}""  >> out.txt
     x=$(( $x + 1 ))
 done

動作はしますが、非常に複雑で、長いテキストファイルの処理に時間がかかります。

もっと簡単な方法はないでしょうか?

どのように解決するのですか?

ということです。

cat filename.txt | awk '{ print $2 $4 }'

または、コメントにあるように:

awk '{ print $2 $4 }' filename.txt