Sed脚本命令截断最后一行

时间:2010-03-24 13:51:35

标签: shell sed ksh aix

我正在尝试在AIX上使用以下命令从文件中删除回车符(\r),但它也删除了我的最后一行。有什么建议吗?

sed -e 's/\r\n/\n/g' ./excprule > ./excprule.tst

命令序列:

dev1:> sed -e 's/\r\n/\n/g' ./test_file > ./test_file.tst
dev1:> diff test_file.tst test_file
diff: 0653-827 Missing newline at the end of file test_file.
26a27
> Trailer 25

编辑:通过对perl执行相同的操作找到了解决方法,但想知道为什么这不起作用。

1 个答案:

答案 0 :(得分:1)

如果你在AIX中使用dos2unix,你也可以使用它,使用sed,

sed '$!{:a;N;s/\r\n/\n/;ta}' file
每当处理当前行时,

就会删除换行符(参见手册页),这样你就不会真正找到\r\n

相关问题