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