linux命令删除文件中空格,关于linux:如何从给定的文本文件中删除所有空格

我想从给定的文本文件中删除所有空白。 是否有任何可用的shell命令? 或者,如何为此目的使用sed。

我想要以下内容:

$ cat hello.txt | sed ....

我尝试了这个:cat hello.txt | sed 's/ //g'。但是它只删除空格,而不删除制表符。

通过"所有空白",您是否也表示换行符?

$ 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

"

您还可以使用tr定义的字符类(对htompkins注释的信用):

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

例如,为了仅擦拭水平空白区域:

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

您也可以使用tr定义的字符类。示例:删除所有空白:cat file.txt | tr -d"[:space:]"删除所有水平空白:cat file.txt | tr -d"[:blank:]"

MS CSV文件也可以使用吗?

@ user3901666它将删除空格,是的,如果产生的输出将与您想要的匹配,很难说-您尝试了什么?

我认为简单得多:

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

香港专业教育学院只是尝试了这一点,它将修改后的文本输出到STDOUT,但不更改文件本身。

@MaxWilliams-只需将-i(破折号i)标志与sed一起使用

这不会删除换行符,不确定OP是否需要换行符。

我认为您可以使用sed擦除空间,同时又不会丢失一些信息,例如更改

到另一行。

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

很好,但我认为我无法带我自己写tr -d"" < infile.txt > outfile.txt

您好,这很感谢,但是请您多多解释。

尝试这个:

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

(在这里找到)

第一部分删除所有制表符(\t)和空格,第二部分删除所有空行

这实际上有效。仔细解释sed -e s / [ t] // g; / ^ $ / d特别是/ ^ $ / d。我知道^是字符串的开头,$是结尾。 / d用于在使用sed时删除。但是这种解释如何导致空白的删除?

我加了一个解释。 ^$匹配空行,因为它要查找"行首"(^),然后紧接着是"行尾"($)。

如果要删除所有空格,甚至换行符:

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

杜德(Dude),在您的终端中输入pythontest.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()

抱歉撞到旧线程,但是f.read().strip("\t

")效率更高吗?

如果后面有两个或多个空格,制表符等黑白单词怎么办?我认为您的解决方案是针对空格的开头和结尾。如果您需要一个衬板,则可以轻松转换以上代码。

尝试这个:

tr -d" \t"

有关更多详细信息,请参见tr(1)的手册页。

这可能是最简单的方法:

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

mv ouput filename

这个答案与其他答案类似,但是由于有些人一直抱怨输出到STDOUT,所以我建议将其重定向到原始文件并覆盖它。我通常不会建议这样做,但有时会快速而肮脏。

cat file.txt | tr -d" \t

"> file.txt

对我来说最简单的方法->

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

嗯...似乎像sed -e"s/[ \t

\v]//g" < hello.txt上的东西应该在正确的范围内(无论如何在cygwin下都可以工作)。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值