【发布时间】:2018-02-12 23:33:14
【问题描述】:
有一个大文件,其中最后一个符号是\r\n。我需要删除它们。它似乎等同于删除最后一行(?)。
UPD:不,不是:一个文件只有一行,以\r\n结尾。
我知道两种方法,但都不适用于 AIX:
sed 's/\r\n$//' file # I don't why it doesn't work
head -c-2 # head doesn't work with negative numbers
AIX 有什么解决方案吗?必须处理大量大文件,因此性能很重要。
【问题讨论】:
-
Program
split(1)将是一个选项...像这样的东西:export Fname=insertfilenamehere; Fsize="$(set --ls -l $Fname` ; echo $5)"; export NewSize=$(expr $Fsize - 2); split -b "$NewSize" -- "$Fname"; mv xaa ${Fname}_${NewSize}` -
dos2unix file可能就是您所需要的。复制您最小的问题文件并对其进行测试。运气好的话,它会毫无问题地加载或进一步搞乱。请注意,您可以将多个文件指定为dos2unix的一次调用的参数。祝你好运。 -
我上一条评论的格式丢失了,下次试试:
export Fname=insertfilenamehere; Fsize="$(set -- $(ls -l $Fname); echo $5)"; export NewSize=$(expr $Fsize - 2); split -b "$NewSize" -- "$Fname"; mv xaa ${Fname}_${NewSize} -
您的
sed命令不起作用,因为\n不是处理的字符串的一部分。你真的要删除那个字符吗?
标签: aix