如何使用sed替换2个字符串之间的空格

时间:2017-03-30 21:23:58

标签: sed replace

如何使用sed替换2个字符串之间的下划线,如下例所示:

xxx ccc vvv bbb        333  444  555
   ^   ^   ^   ^^^^^^^^   ^^   ^^   <--- spaces visualized for easier counting

期望的输出:

xxx_ccc_vvv_bbb        333  444  555

1 个答案:

答案 0 :(得分:3)

这很简单,你只需要用带有下划线的单词边界(g)包围的单个空白字符(s)的全局(\s)替换(\b) (_):

sed 's/\b\s\b/_/g'

您的示例可以像这样运行:

echo "xxx ccc vvv bbb        333  444  555" | sed 's/\b\s\b/_/g'  

产生你想要的输出:

xxx_ccc_vvv_bbb        333  444  555
相关问题