0

例如,我将如何做到这一点:

replace: today_is_sunny[0F]
with: today_is_sunny_F[0]

请记住,方括号内的零可以是任何数字,而方括号内的字母始终是 F。

谢谢!

4

5 回答 5

0

我认为这应该可以解决问题

sed 's|today_is_sunny\[\([0-9]\)F\]|today_is_sunny_F\[\1\]|'
于 2013-03-07T22:12:11.500 回答
0

您可以尝试以下方法:

echo "today_is_sunny[0F]" | sed 's/\[\([0-9]\)F\]/_F\[\1\]/g'
于 2013-03-07T22:14:56.287 回答
0

这条短线应该可以解决您的问题:

sed 's/\[/_F&/;s/.]/]/' file

例如

kent$  echo "today_is_sunny[0F]"|sed 's/\[/_F&/;s/.]/]/'
today_is_sunny_F[0]
于 2013-03-07T22:16:05.073 回答
0

考虑任何数字:

sed -e 's;\(\[\)\([0-9]\)F;_F\1\2;'

用法可能是:

echo 'today_is_sunny[0F]' | sed -e 's;\(\[\)\([0-9]\)F;_F\1\2;'
于 2013-03-07T22:16:44.970 回答
0

使用命名字符类的示例:

sed -r 's/\[([[:digit:]])([[:alpha:]])\]/\2[\1]/'
于 2013-03-07T22:34:46.410 回答