【发布时间】:2013-10-29 01:42:50
【问题描述】:
我有一个巨大的 .txt 文件,我希望删除所有空格、换行符、缩进等。它应该是一个长字符串。
我试过了
sed -i 's/\ //g' test.txt
但什么也没发生
【问题讨论】:
我有一个巨大的 .txt 文件,我希望删除所有空格、换行符、缩进等。它应该是一个长字符串。
我试过了
sed -i 's/\ //g' test.txt
但什么也没发生
【问题讨论】:
sed -n "s/[[:blank:]]//g;H
$ {x;s/\n//g;p;}"
如果您想包含新行,则需要 H 比 $ ,因为 sed 默认逐行处理(因此一行内没有新行)。需要 -n 和 p 以避免使用 H 进行双重显示
【讨论】:
对我来说似乎工作正常:
[~/Desktop]
==> cat test.txt
the quick brown fox
[~/Desktop]
==> sed -i "s/\ //g" test.txt
[~/Desktop]
==> cat test.txt
thequickbrownfox
【讨论】:
有时直接使用 " " 很困难,尤其是当您使用双引号时(这涉及到 bash 在将字符串传递给 sed 之前会对其进行解释)。
sed -i -e 's/\s//g' file.txt
... 应该可以工作(它对我有用)。 "\s" 表示所有空白字符,并带有单引号 '',以便 bash 在将其传递给 sed 之前不会对其进行解释。
【讨论】:
\s 仅表示较新版本的 GNU sed 中的所有空白字符。它不是 BRE 的一部分。
虽然您使用 cygwin,但我认为您的操作系统是 windows,那么您不需要使用 bash 来实现您的目标。只需使用文本编辑器打开您的 txt 文件,然后将空白替换为空,然后您的 txt 文件中的所有空白将被删除。
这种方法几乎可以满足各种去除。也可以应用于excel或word等。
祝你好运!
【讨论】: