データに一連のトークンがあり、末尾の を削除したいの".[0-9]"
ですが、正規表現を適切に引用する方法がわかりません。最初の一致は まで.
で、2 番目の一致は.
と の数字です。初戦は残すつもりです。
data="thing thing__aaa.0 thing__bbb.3 thing__ccc.5 other_aaa other_bbb other_ccc.5"
data=`echo $data | sed s/\([a-zA-Z0-9_]+\)\(\.[0-9]\)/\1/g`
echo $data
実際の出力:
thing thing__aaa.0 thing__bbb.3 thing__ccc.5 other_aaa other_bbb other_ccc.5
望ましい出力:
thing thing__aaa thing__bbb thing__ccc other_aaa other_bbb other_ccc
引用符で囲まれていない([a-zA-Z0-9_]+)
が最初に一致するグループであり、 が に(\.[0-9])
一致するという考え方です.number
。これにより、\1
両方のグループが最初のグループに置き換えられます。