素晴らしいファイルがあります。各行は改行文字で終わり、最初の行の後の各行はコンマで始まります。このように:
blah blah blah
,more blah blah blah
,even more blah blah blah
カンマと改行文字を変更したい。
blah blah blah,
more blah blah blah,
even more blah blah blah
長さが数千行しかないのでVIでやろうとしました。さまざまな組み合わせを試しましたが、何も機能しません。おそらくほとんどそうだと思いますか?
%s//\n,/,/\n/g
しかし、末尾の文字のエラーが発生します。区切り文字とエスケープ文字を混乱させることは確かですが、何が間違っているのかわかりません。
編集:\ rではなく\ nで終わるとします。 :set listを実行すると、各行は$で終わります。
ベストアンサー1
私はGNUを使ってこれを思い出しましたsed
。
sed -Ee 's/^[,]*(.*)$/\1,/' -e '$s/,$//' file
またはファイルから置き換えてください。
sed -i -Ee 's/^[,]*(.*)$/\1,/' -e '$s/,$//' file
0回以上現れる行の始まり,
^[,]*
そこから行末までパターンをキャプチャします。
(.*)$
キャプチャされたパターンに置き換えて,
最後に追加します。
\1,
,
ラスラインを削除します。
-e '$s/,$//'