一部の行の末尾から "\n" 文字列を削除します。

一部の行の末尾から "\n" 文字列を削除します。

「///」文字列で始まる行の末尾から「\n」文字列(改行文字ではない)をどのように削除できますか?ありがとうございます。

入力例:

Some text\n

/// Some comment\n

希望の出力:

Some text\n

/// Some comment

使ってみました。

sed -i 's/\\n*$//' $1

ただし、末尾の "\n" 文字列はすべて削除されます。

答え1

前に正規表現のアドレス指定子を追加してください。パターンにスラッシュがあるため、他の式の区切り文字を使用するとより明確になります。

sed -i '\%^///% s/\\n$//' Input

テスト:

$ sed '\%^///% s/\\n$//' Input 
Some text\n

/// Some comment

「チルトつまようじ」を好む場合

sed -i '/^\/\/\// s/\\n$//' Input

関連情報