2017-01-19 175 views
0

我希望能够将所有下划线后跟一个小写字母替换为带有sed的点。可能吗?用小写字母替换下划线

foo.bar

干杯

+1

我觉得'sed's/_ \([a-z] \)/。\ 1/g''应该可以工作。 –

+4

@WiktorStribiżew或'[[:lower:]]'以避免出现语言环境问题。 –

回答

1

更换

foo_bar

您可以使用

echo 'foo_bar_BAR_space' | sed 's/_\([[:lower:]]\)/.\1/g' 

参见online demo

详细说明:

  • _ - 下划线
  • \([[:lower:]]\) - 捕获组匹配小写字母,并把它在第1组
  • .\1 - 替换:一个点+小写捕获到组1中的字母
  • /g - 匹配多次出现的已定义模式。