我从使用屏幕抓取填充excel电子表格的用户收到一个竖线分隔的文本文件,因此数据很乱。它充满了随机^M (carriage returns)
和<96> (windows en dash)
,导致导入不完整。
我尝试了dos2unix
,但收到错误,指出转换存在问题。我使用此网站上找到的解决方案删除了所有^M
:
tr -d '\r' < infile > outfile
保留<96>
个字符。这些破折号的可比性'/r'
是多少?或许还有更好的解决方案?如果可能的话,我实际上想用“好”破折号替换“坏”破折号。
答案 0 :(得分:0)
为什么不用SAS代替清理文件?如果您的行短于32,767个字符,那么它就很简单。
data _null_;
infile 'input-file' termstr=LF ;
file 'output-file' termstr=LF ;
input;
_infile_=translate(compress(_infile_,'0D'x),'-','96'x);
put _infile_;
run;
如果线条较长,您可以按字段读取数据字段并修改它。
答案 1 :(得分:0)
您可以使用命令cat file.txt | od
获取八进制值,然后像使用^ M个字符一样使用tr
将其删除。