Sed 用单个字符替换所有出现的n个空格
我想使用sed(这是最好的工具吗?)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'
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。