【发布时间】:2018-03-28 11:35:41
【问题描述】:
cat -ev ./test.txt
1 line with "carriage return \r" and "new line \n" ^M$
2 line only with "new line \n" $
3 ^M$
4 line with "carriage return \r" and "new line \n" ^M$
5 line with "carriage return \r" and "new line \n" ^M$
6 line only with "new line \n" $
7 line only with "new line \n" $
8 line with "carriage return \r" and "new line \n" ^M$
我想删除换行符\n,但只在没有 CR 的行中。
所以输出应该是这样的:
1 line with "carriage return \r" and "new line \n" ^M$
2 line only with "new line \n" 3 ^M$
4 line with "carriage return \r" and "new line \n" ^M$
5 line with "carriage return \r" and "new line \n" ^M$
6 line only with "new line \n" 7 line only with "new line \n" 8 line with "carriage return \r" and "new line \n" ^M$
然后,是时候移除 CR 了。 最终输出:
1 line with "carriage return \r" and "new line \n" $
2 line only with "new line \n" 3 $
4 line with "carriage return \r" and "new line \n" $
5 line with "carriage return \r" and "new line \n" $
6 line only with "new line \n" 7 line only with "new line \n" 8 line with "carriage return \r" and "new line \n" $
最后一点很简单,例如在vim中:%s@\r@@gc ...网上有很多提示“如何删除CR”。
但我的问题在于 beginng - 如何在 perl 和/或 sed 中删除“\n”,但仅限于没有 CR 的行?
【问题讨论】: