sed在Linux或者Unix上删除/删除^ M回车符(换行/CRLF)
时间:2020-01-09 10:43:35 来源:igfitidea点击:
如何在UNIX或者Linux操作系统下使用sed从文本文件中删除^ M或者^ M(回车/换行)?
换行符只是行尾(EOL)。
它是一个特殊字符或者字符序列,表示文本行的结尾和新行的开头。
代表换行符的实际代码因操作系统而异。
例如,Microsoft Windows,DOS(MS-DOS,PC DOS等)使用" CR + LF"。
LF被Unix和类似Unix的系统使用,包括Linux,OS X,FreeBSD等。
步骤如下:
- 执行以下sed命令以删除回车符(CR)
sed 's/\r//' input > output
- 执行以下sed命令替换换行符(LF)
sed ':a;N;$!ba;s/\n//g' input > output
使用sed命令删除回车(CR)
替代命令的语法如下(要获取^ M类型的CTRL + V,然后是CTRL + M
,即不要只输入克拉符号和大写的M。
它将不起作用):
sed -e 's/^M//g' input sed -e 's/^M//g' input > output # gnu sed syntax sed -i 's/^M//g' input # replace it with FOO sed -i -e 's/^M/FOO/g' input
或者易于使用的sed语法在Unix或者Linux中删除回车符:
sed 's/\r$//' input > output sed 's/\r$//g' input > output # GNU/sed syntax sed -i 's/\r$//g' input
用sed命令替换回车(CR)
语法为:
sed 's/\r/YOUR-replacement-TEXT-HERE/' input > output sed 's/\r/YOUR-replacement-TEXT-HERE/g' input > output sed 's/\r/foo/g' input > output
如何验证文本文件中的^ M
使用cat命令,如下所示:
cat -v input
关于在Unix或者Linux上用sed删除或者替换换行(LF)的说明
如果您不想删除\ n(换行),请使用以下语法:
sed -i ':a;N;$!ba;s/\n//g' input
或者
sed ':a;N;$!ba;s/\n//g' input > output
使用dos2unix命令删除回车符
您还可以使用dos2unix命令将文本文件从DOS格式转换为Unix格式:
dos2unix input dos2unix -b input
tr命令语法
删除CRLF:
tr -d '\r' < input > output