如何从给定的文本文件中删除所有的空格

我想从给定的文本文件中删除所有的空格。 有没有可用的shell命令? 或者,如何使用sed来达到这个目的。

我想要下面的东西:

$ cat hello.txt | sed ….

我试过这个: cat hello.txt | sed 's/ //g' cat hello.txt | sed 's/ //g' 。但是它只删除空格,而不是标签。

Solutions Collecting From Web of "如何从给定的文本文件中删除所有的空格"

 $ man tr NAME tr - translate or delete characters SYNOPSIS tr [OPTION]... SET1 [SET2] DESCRIPTION Translate, squeeze, and/or delete characters from standard input, writing to standard output. 

为了擦除包括换行符在内的所有空格,可以尝试:

 cat file.txt | tr -d " \t\n\r" 

你也可以使用tr定义的字符类(credit to htompkins comment):

 cat file.txt | tr -d "[:space:]" 

例如,为了擦除水平的白色空间:

 cat file.txt | tr -d "[:blank:]" 

我的意见更简单:

 sed -r 's/\s+//g' filename 

我想你可能会使用sed来清除空间,而不是像更换另一行一样丢失一些信息。

 cat hello.txt | sed '/^$/d;s/[[:blank:]]//g' 

如果你想删除所有的空白,甚至换行符:

 perl -pe 's/\s+//g' file 

老兄,只需python test.py在你的终端。

 f = open('/home/hduser/Desktop/data.csv' , 'r') x = f.read().split() f.close() y = ' '.join(x) f = open('/home/hduser/Desktop/data.csv','w') f.write(y) f.close() 

这可能是最简单的方法:

 sed -r 's/\s+//g' filename > output mv ouput filename 

尝试这个:

 sed -e 's/[\t ]//g;/^$/d' 

(在这里找到)

第一部分删除所有标签( \t )和空格,第二部分删除所有空行

嗯…看起来像sed -e "s/[ \t\n\r\v]//g" < hello.txt应该是在右边的球场(似乎在cygwin下工作在任何情况下)。

尝试这个:

 tr -d " \t" <filename 

有关更多详细信息,请参阅tr(1)的联机帮助页。

最简单的方法 – >

  echo "Hello my name is Donald" | sed s/\ //g 

这个答案与其他类似,但有些人一直抱怨输出到STDOUT我只是建议重定向到原来的文件,并覆盖它。 我永远不会建议这个,但有时快而肮脏的作品。

cat file.txt | tr -d“\ t \ n \ r”> file.txt