例如,我将如何做到这一点:
replace: today_is_sunny[0F]
with: today_is_sunny_F[0]
请记住,方括号内的零可以是任何数字,而方括号内的字母始终是 F。
谢谢!
我认为这应该可以解决问题
sed 's|today_is_sunny\[\([0-9]\)F\]|today_is_sunny_F\[\1\]|'
您可以尝试以下方法:
echo "today_is_sunny[0F]" | sed 's/\[\([0-9]\)F\]/_F\[\1\]/g'
这条短线应该可以解决您的问题:
sed 's/\[/_F&/;s/.]/]/' file
例如
kent$ echo "today_is_sunny[0F]"|sed 's/\[/_F&/;s/.]/]/'
today_is_sunny_F[0]
考虑任何数字:
sed -e 's;\(\[\)\([0-9]\)F;_F\1\2;'
用法可能是:
echo 'today_is_sunny[0F]' | sed -e 's;\(\[\)\([0-9]\)F;_F\1\2;'
使用命名字符类的示例:
sed -r 's/\[([[:digit:]])([[:alpha:]])\]/\2[\1]/'