![从某些行的末尾删除“\n”字符串](https://linux22.com/image/136749/%E4%BB%8E%E6%9F%90%E4%BA%9B%E8%A1%8C%E7%9A%84%E6%9C%AB%E5%B0%BE%E5%88%A0%E9%99%A4%E2%80%9C%5Cn%E2%80%9D%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
如何从仅以字符串“///”开头的行的末尾删除字符串“\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