2

我有一个相当大的文本文件,其中每个字符之间都有一个额外的空格;

我看起来像这样。  

我想删除那些多余的字符

它看起来像这样。

通过 Linux 终端。如果不删除所有空格,我似乎无论如何都找不到这样做。我愿意在这一点上尝试任何解决方案。我会很感激朝着正确的方向轻推。

4

5 回答 5

5
$ echo 'I t   l o o k s   l i k e   t h i s .  ' | sed 's/\(.\) /\1/g'
It looks like this. 
于 2013-11-30T19:07:51.080 回答
3

一个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.
于 2013-11-30T19:59:12.197 回答
3

您确定中间字符是空格吗?这很可能是一个 UTF-16 文件。

我建议您使用功能强大的编辑器将其打开并将其转换为 UTF-8。

于 2013-11-30T19:10:25.733 回答
1
perl -pe 's|(\s+)| " "x (length($1)>1) |ge' file
于 2013-11-30T19:26:27.907 回答
1

只要它是您想要摆脱的所有其他字符,您就可以使用 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")
于 2013-11-30T19:11:15.380 回答