我想做一个globel替换,将 都 字符串 "苹果 "到 "香蕉 "的出现次数。除了 对于 第二 "苹果 "的出现在第214行。第二次出现的 "apple "的行位是13到17。
例如,第214行现在是这样的。
apple.pineapplejuice();
我想把这一行改成("pineapplejuice() "中的 "apple "没有改变)。
banana.pineapplejuice();
一些使用实例 apple
在我的其他文件中
SetupTable(apple, {isWashed, okay});
我试着在这些帖子中寻找答案,但找不到我需要的东西。sed 从选定的文本中替换第8位的空格字符。 如何使用 sed 和 cut 在文件中的某一行的某一位置找到并替换数值。
我已经尝试过的代码。
sed -i -e '214\{13,17\}!s/apple/banana/g' src/test/fruit.cpp
我得到了
sed: 1: "214\{13,17\}!s/apple/ba ...": invalid command code \
我想我只需要知道如何指定某一行特定范围的字符的地址就可以了,但也许还有其他比这更巧妙的方法。先谢谢你
sed
是一种(图灵完整)脚本语言。你可以写条件。
sed '
214{
# line 214 handled spexially
s/apple/banana/
}
214!{
# all except line 214
s/apple/banana/g
}
'
或者你可以 '214{s/apple/banana;b;}; s/apple/banana/g'
如果找到214行,就跳到脚本的开头。
我相信你只是想使用GNU sed扩展,并匹配单词 apple
:
sed 's/\<apple\>/banana/g'
在GNU sed中,将 apple
整词
sed -i 's/\bapple\b/banana/g' file
\b
是一个词的边界。