いくつかの処理の後、次のような入力ファイルがあります。
file1.txt
12345|john|student
43321|jack|professor
78965|alex|lecturer
上記のファイルをさらに処理する必要があるため、行の最後にも改行が必要です。現在、以下のように達成できます。
sed 's/$/|/' file1.txt
上記のコマンドは、次のように出力されます。
12345|john|student|
43321|jack|professor|
|
78965|alex|lecturer|
ご覧のとおり、 |
空白行にも追加されます。 |
を削除しようとしたとき 以下のコマンドを使用して、空白行から再度文字を入力します
sed 's/|//g' file1.txt
|コード> 文字はどこでも削除されています。
|
のみを削除するにはどうすればよいですか 空白行で?空白行も保持する必要があります。
承認された回答:
オリジナルから、 |
を追加できます 空白でない行へ:
sed
を使用する :
sed -e '/^$/!s/$/|/' file
perl
の使用 :
perl -lpe 's/$/|/ if length' file
|
を削除する場合 空白の行から(2番目のバージョン):
perl -lpe 's/|// if length == 1'