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

时间:2012-09-05 11:18:09

标签: sed

我想用sed(这是最好的工具吗?)来实现这个目标:

foo     bar    buzz     fuzz

到此:

foo|bar|buzz|fuzz

如何做到这一点?

非常感谢:)。

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

$ sed 's/\s\s*/|/g' < input

答案 2 :(得分:1)

使用[:SPACE:] POSIX类

如果空格的数量可能会发生变化,或者可能是空格和制表符的混合,那么您希望使用POSIX类在当前模式空间中全局替换一系列空格字符和一个管道符号。例如:

$ echo 'foo     bar    buzz     fuzz' | sed 's/[[:space:]]\+/|/g'
foo|bar|buzz|fuzz

答案 3 :(得分:0)

如果你有GNU sed:

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