小编典典

在 Unix 中删除回车

all

\r从 Unix 文件中删除所有回车的最简单方法是什么?


阅读 90

收藏
2022-05-25

共1个答案

小编典典

我将假设您的意思是在行尾的回车( ,CR ,
"\r"0x0d,而不是盲目地在文件中(据我所知,您可能将它们放在字符串的中间)。仅在第一行末尾使用此测试文件: __CR

$ cat infile
hello
goodbye

$ cat infile | od -c
0000000   h   e   l   l   o  \r  \n   g   o   o   d   b   y   e  \n
0000017

dos2unix如果它已安装在您的系统上,这是要走的路:

$ cat infile | dos2unix -U | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

如果由于某种原因dos2unix您无法使用,那么sed将这样做:

$ cat infile | sed 's/\r$//' | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

如果由于某种原因sed您无法使用,那么ed将以一种复杂的方式进行操作:

$ echo ',s/\r\n/\n/
> w !cat
> Q' | ed infile 2>/dev/null | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

如果您的盒子上没有安装 任何 这些工具,那么您遇到的问题比尝试转换文件要大:-)

2022-05-25