次のファイルがあります
$ 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
-i
nplace.txtファイルを編集するオプションが追加されましたi
。または-i.orig
所定の位置で編集するが、元のコンテンツをIP.orig
。
シェルでは、zsh
次のようにこれらのIPをアレイにロードすることもできます。
ips=( ${(f)"$(<IP)"} )
その後、j
カンマで書き直します。
print -r -- ${(j[, ])ips} > IP
一度に1行ずつ処理するPerlとは異なり、Perlはファイル全体をメモリにロードします。
他の2つの違い:
- 空行は捨てられます。
- 元のファイルに空のファイルがない場合、または最後の行が適切に区切られていないファイルがある場合でも、改行文字は常に最後に追加されます。