那么,我知道sed不支持非贪婪的search,但有可能是一个聪明的正则expression式来取代以下
VARIABLE=" text1 text2 text3 "
同
VARIABLE=" Atext1 Atext2 Atext3 "
现在我只能replace第一场比赛。
我不相信这种情况是重要的,sed不支持非贪婪的正则表达式,下面的非包含范围替换应该就足够了。 我用GNU sed运行了一个测试,看下面的结果
sed '/^VAR.*="/,/^"/ {/"/! s/^/A/}' testfile.txt VARIABLE=" Atext1 Atext2 Atext3 " test data test p VARIABLE=" Atext1 Atext2 Atext3 " test data
编辑:或者如波通指出的,这可以归结为更习惯的形式
sed '/^VAR.*="/,/^"/ {//! s/^/A/}' testfile.txt
假设文本不包含双引号:
sed '/"/!s/^/A/' input
我假设你想要替换变量的内容:
VARIABLE=$(sed 's/./A&/' <<< "$VARIABLE")