【发布时间】:2017-03-31 05:41:49
【问题描述】:
如何使用 sed 将两个字符串之间的单个空格替换为下划线,如下例所示:
xxx ccc vvv bbb 333 444 555
^ ^ ^ ^^^^^^^^ ^^ ^^ <--- spaces visualized for easier counting
期望的输出:
xxx_ccc_vvv_bbb 333 444 555
【问题讨论】:
如何使用 sed 将两个字符串之间的单个空格替换为下划线,如下例所示:
xxx ccc vvv bbb 333 444 555
^ ^ ^ ^^^^^^^^ ^^ ^^ <--- spaces visualized for easier counting
期望的输出:
xxx_ccc_vvv_bbb 333 444 555
【问题讨论】:
这很简单,您只需使用下划线 (_) 将单词边界 (\b) 包围的单个空白字符 (\s) 全局 (g) 替换 (s):
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
【讨论】: