Sed 用单个字符替换所有出现的n个空格

Sed 用单个字符替换所有出现的n个空格,sed,Sed,我想使用sed(这是最好的工具吗?) foo bar buzz fuzz 为此: foo|bar|buzz|fuzz 如何做到这一点 非常感谢:)。假设项目之间有5个空格,并且它们位于名为test.txt的文件中: sed -i "s/ /|/g" test 假设项目之间有5个空格,并且它们位于名为test.txt的文件中: sed -i "s/ /|/g" test $sed's/\s\s*/|/g'

我想使用sed(这是最好的工具吗?)

foo     bar    buzz     fuzz
为此:

foo|bar|buzz|fuzz
如何做到这一点


非常感谢:)。

假设项目之间有5个空格,并且它们位于名为test.txt的文件中:

sed -i "s/     /|/g" test

假设项目之间有5个空格,并且它们位于名为test.txt的文件中:

sed -i "s/     /|/g" test
$sed's/\s\s*/|/g'
$sed's/\s\s*/|/g'
使用[:SPACE:]POSIX类 如果空格的数量可能会改变,或者可能是空格和制表符的混合,那么您希望使用POSIX类在当前模式空间中全局地用单个管道符号替换一系列空白字符。例如:

$ echo 'foo     bar    buzz     fuzz' | sed 's/[[:space:]]\+/|/g'
foo|bar|buzz|fuzz
使用[:SPACE:]POSIX类 如果空格的数量可能会改变,或者可能是空格和制表符的混合,那么您希望使用POSIX类在当前模式空间中全局地用单个管道符号替换一系列空白字符。例如:

$ echo 'foo     bar    buzz     fuzz' | sed 's/[[:space:]]\+/|/g'
foo|bar|buzz|fuzz
如果您有GNU sed:

sed -r 's/ +/|/g'
如果您有GNU sed:

sed -r 's/ +/|/g'

\s
速记不符合POSIX,可能无法在所有版本的sed中使用。YMMV.
\s
速记不符合POSIX,可能无法在所有版本的sed中使用。YMMV。