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


当前回答

我制作了这个shell脚本来删除\r字符。它适用于solaris和red-hat:

#!/bin/ksh

LOCALPATH=/Any_PATH

for File in `ls ${LOCALPATH}`
do
   ARCACT=${LOCALPATH}/${File}
   od -bc ${ARCACT}|sed -n 'p;n'|sed 's/015/012/g'|awk '{$1=""; print $0}'|sed 's/ /\\/g'|awk '{printf $0;}'>${ARCACT}.TMP
   printf "`cat ${ARCACT}.TMP`"|sed '/^$/d'>${ARCACT}
   rm ${ARCACT}.TMP
done

exit 0

其他回答

如果你是一个Vi用户,你可以打开文件并删除回车符:

:%s/\r//g

或与

:1,$ s/^M//

请注意,您应该通过按ctrl-v和ctrl-m键入^M。

事情是这样的,

%0d是回车字符。使它与Unix兼容。我们需要使用下面的命令。

dos2unix fileName。extension fileName.extension

这又是一个解决方案……因为总还有一个问题:

perl -i -pe 's/\r//' filename

它很好,因为它可以在我使用过的所有unix/linux版本中工作。

古老的学校:

tr -d '\r' < filewithcarriagereturns > filewithoutcarriagereturns
tr -d '\r' < infile > outfile

看到tr (1)