awk +ファイルにリストを追加する方法

awk +ファイルにリストを追加する方法

私のファイルには次のリストがあります

その他のファイル.ex

efifc1a
hygg4a
hdy5d


nhdw4s
wesf3a
fjfhyr



jfhg
gsfar

次のように、最初のリストの後に2番目のリストを追加し、2番目のリストの後に3番目のリストを追加する方法は次のとおりです。

efifc1a   nhdw4s     jfhg
hygg4a    wesf3a     gsfar
hdy5d     fjfhyr

ベストアンサー1

どうですか?

awk '
  BEGIN {FS="\n"; RS="\n\n+"}
  {for (i=1;i<=NF;i++) a[i] = a[i] == ""? $i : a[i]"\t"$i; next}
  END {for (i in a) print a[i]}
' file.ex

テスト:

awk '
>   BEGIN {FS="\n"; RS="\n\n+"}
>   {for (i=1;i<=NF;i++) a[i] = a[i] == ""? $i : a[i]"\t"$i; next}
>   END {for (i in a) print a[i]}
> ' file.ex
efifc1a nhdw4s  jfhg
hygg4a  wesf3a  gsfar
hdy5d   fjfhyr  

awkの使用に固執しない場合は、次のものを使用できます。自動生成されたcolumnsコマンドtransposeここで説明されているコマンドは行と列を置き換える例えば

columns -c3 < file.ex | tr -s ' ' '\t' | transpose -t

おすすめ記事