0

我有一个巨大的 .txt 文件,我希望删除所有空格、换行符、缩进等。从字面上看,它应该是一个长字符串。

我试过了

sed -i 's/\ //g' test.txt

但什么也没发生

4

4 回答 4

1
sed -n "s/[[:blank:]]//g;H
$ {x;s/\n//g;p;}"

如果要包含新行,则需要 H 比 $ ,因为 sed 默认逐行处理(因此一行内没有新行)。需要 -n 和 p 以避免使用 H 进行双重显示

于 2013-10-29T07:41:10.123 回答
0

当您使用 cygwin 时,我认为您的操作系统是 windows,那么您不需要使用 bash 来实现您的目标。只需使用文本编辑器打开您的 txt 文件,然后将空白替换为空,然后您的 txt 文件中的所有空白将被删除。

这种方法几乎可以满足各种去除。也可以应用于excel或word等。

祝你好运!

于 2013-10-29T07:58:19.180 回答
0

有时直接使用 " " 很困难,尤其是当您使用双引号时(这涉及到 bash 在将字符串传递给 sed 之前会对其进行解释)。

sed -i -e 's/\s//g' file.txt

...应该工作(它适用于我)。“\s” 表示所有空白字符,并带有单引号 '',因为 bash 在将其传递给 sed 之前不会对其进行解释。

于 2013-10-29T02:08:15.800 回答
0

对我来说似乎工作正常:

[~/Desktop]
==> cat test.txt
the quick brown fox

[~/Desktop]
==> sed -i "s/\ //g" test.txt

[~/Desktop]
==> cat test.txt
thequickbrownfox
于 2013-10-29T01:48:19.677 回答