カンマとスペースを追加するUNIXコマンド

カンマとスペースを追加するUNIXコマンド

次のファイルがあります

$ cat IP
10.3.1.1
10.4.1.1
10.6.3.1
10.19.4.2
10.22.3.4

どうすれば次のように作成できますか?

$ cat IP 
10.3.1.1, 10.4.1.1, 10.6.3.1, 10.19.4.2, 10.22.3.4

ベストアンサー1

そしてperl

perl -pe 's/\n/, / unless eof' IP

-inplace.txtファイルを編集するオプションが追加されましたi。または-i.orig所定の位置で編集するが、元のコンテンツをIP.orig

シェルでは、zsh次のようにこれらのIPをアレイにロードすることもできます。

ips=( ${(f)"$(<IP)"} )

その後、jカンマで書き直します。

print -r -- ${(j[, ])ips} > IP

一度に1行ずつ処理するPerlとは異なり、Perlはファイル全体をメモリにロードします。

他の2つの違い:

  • 空行は捨てられます。
  • 元のファイルに空のファイルがない場合、または最後の行が適切に区切られていないファイルがある場合でも、改行文字は常に最後に追加されます。

おすすめ記事