我有一个相当大的文本文件,其中每个字符之间都有一个额外的空格;
我看起来像这样。
我想删除那些多余的字符
它看起来像这样。
通过 Linux 终端。如果不删除所有空格,我似乎无论如何都找不到这样做。我愿意在这一点上尝试任何解决方案。我会很感激朝着正确的方向轻推。
$ echo 'I t l o o k s l i k e t h i s . ' | sed 's/\(.\) /\1/g'
It looks like this.
一个awk
解决方案
echo "I t l o o k s l i k e t h i s ." | awk '{for (i=1;i<=NF;i+=2) printf $i;print ""}' FS=""
It looks like this.
您确定中间字符是空格吗?这很可能是一个 UTF-16 文件。
我建议您使用功能强大的编辑器将其打开并将其转换为 UTF-8。
perl -pe 's|(\s+)| " "x (length($1)>1) |ge' file
只要它是您想要摆脱的所有其他字符,您就可以使用 python。
>>> s = "I t l o o k s l i k e t h i s ."
>>> print s[0::2]
It looks like this.
如果您想对文本文件执行此操作,请执行以下操作:
with open("/path/to/file.txt") as f:
f = f.readlines()
with open("/path/to/new.txt") as g:
for i in f:
g.write(str(i)[0::2]+"\n")