テキストファイルの行の再構成

テキストファイルの行の再構成

だから、次のファイルがあります。

First Line
Second Line 
Third Line
3 0.374
2 0.777
1 0.245
Fourth Line
4 0.687
...

intで始まる行がintで参照される行に追加されるように再構成したいと思います。

First Line 0.245
Second Line 0.777
Third Line 0.374
Fourth Line 0.687
...

ベストアンサー1

POSIXの使用awk:

awk '$1 in a {print a[$1], $0; next}; {a[++l] = $0}' <file

参照線の前にint行が表示されると、出力がソートされずに失われることに注意してください。

そしてgawkまたはbwk-awk、ソートされた出力を簡単に印刷できます。

gawk '
  $1 in a { a[$1] = a[$1] " " $0; next }
  { a[++l] = $0 }
  END { for (i = 1; i <= length(a); i++) print a[i] }
' <file

他のawk実装では、配列インデックスを並べ替える関数を直接作成する必要があります。

これはまた、ファイル全体の内容をメモリに保持します。

おすすめ記事