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


当前回答

如果你正在运行一个X环境,并且有一个合适的编辑器(visual studio代码),那么我会遵循以下建议:

Visual Studio代码:如何显示行结束

只要转到屏幕的右下角,visual studio代码就会显示文件编码和文件后面的行结束约定,只需简单地单击就可以切换。

只要在linux环境下使用可视化代码作为notepad++的替代品,你就可以开始了。

其他回答

Cat input.csv | sed 's/\r/\n/g' > output.csv

为我工作

如果你使用的操作系统(如OS X)没有dos2unix命令,但有Python解释器(2.5+版本),这个命令相当于dos2unix命令:

python -c "import sys; import fileinput; sys.stdout.writelines(line.replace('\r', '\n') for line in fileinput.input(mode='rU'))"

它处理命令行上的命名文件以及管道和重定向,就像dos2unix一样。如果您将这一行添加到~/。Bashrc文件(或其他shell的等效配置文件):

alias dos2unix="python -c \"import sys; import fileinput; sys.stdout.writelines(line.replace('\r', '\n') for line in fileinput.input(mode='rU'))\""

... 下次登录时(或运行source ~/.)您将能够在命令行上以与其他示例相同的方式使用dos2unix名称。

如果你正在运行一个X环境,并且有一个合适的编辑器(visual studio代码),那么我会遵循以下建议:

Visual Studio代码:如何显示行结束

只要转到屏幕的右下角,visual studio代码就会显示文件编码和文件后面的行结束约定,只需简单地单击就可以切换。

只要在linux环境下使用可视化代码作为notepad++的替代品,你就可以开始了。

有一个名为dos2unix的实用程序存在于许多系统上,并且可以在大多数系统上轻松安装。

我制作了这个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