为了在下面的关键字代码段之前替换所有内容,效果很好。
sed 's/.*keyword/string-to-be-replaced/'
但对于关键字之前替换n个字符,包括关键字我无法找到一个解决方案。有人知道吗?
您只需要点。n
.
n=[num]
sed "s/.\{$n\}keyword/REPLACE/"
...在哪里[num]
代表一个正整数应该工作。
请注意,这与.*keyword
至少两个重要方面不同。
.*
适用于in模式空间中最后一次出现之前出现的任何/所有字符,因此,如果一次有多个匹配项,则将吃掉除最后一个以外的所有字符。keyword
sed
keywords
.*
.\{[num]\}keyword
将仅匹配模式空间中可能找到的模式的第一个匹配项。.\{[num]\}
将要求至少[num]
-count个字符出现在关键字之前才能限定匹配,而即使在行首找到.*
也可以匹配keyword
。
这更像,它会匹配这个行为的表达高达[num]
发生之前字符keyword
是...
sed "s/.\{0,$n\}keyword/REPLACE/"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句