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