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

新手上路,请多包涵

我想从给定的文本文件中删除所有空格。

是否有任何可用的 shell 命令?

或者,如何使用 sed 来达到这个目的?

我想要下面的东西:

$ 猫你好.txt | sed ….

我试过这个: cat hello.txt | sed 's/ //g'

但它只删除空格,而不是制表符。

谢谢。

原文由 Lunar Mushrooms 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 402
2 个回答
$ 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 定义的字符类(归功于 htompkins 评论):

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

例如,为了只擦除水平空白:

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

原文由 Paulo Scardine 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的观点要简单得多:

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

原文由 Lucie G 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题