每次出现大写字母后跟数字后加下划线

时间:2016-10-11 16:05:20

标签: bash

在bash中我想替换

 H+O2=O+OH

H+O_2=O+OH

我用awk和sed尝试了无数的东西,但到目前为止没有任何工作。 问题是我不知道如何保存字符串,然后只需添加_而不是替换O2。 谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用sed

$> s='H+O2=O+OH'
$> sed -E 's/([A-Z])([0-9])/\1_\2/g' <<< "$s"
H+O_2=O+OH

答案 1 :(得分:0)

如果Perl是一个选项,你可以使用一种非常类似于Anubhava的技术:

echo 'H+O2=O+OH' | perl -pe 's/([A-Z])([0-9])/\1_\2/g'