从某些行的末尾删除“\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

相关内容