创建如下文件:
# Start OF Java_Out_Of_Memory
- displayName: "Java_Out_Of_Memory"
logDirectory: "/opt/xyz"
logName: "TextLog_*"
searchStrings:
- displayName: "Out_Of_Memory"
pattern: "java.lang.OutOfMemoryError"
matchExactString: false
caseSensitive: false
# End OF Java_Out_Of_Memory
我想在caseSensitive: false下面添加一行printMatchesString: false…
# Start OF Java_Out_Of_Memory
- displayName: "Java_Out_Of_Memory"
logDirectory: "/opt/xyz"
logName: "TextLog_*"
searchStrings:
#displayName Should be unique across the patterns including the case.
- displayName: "Out_Of_Memory"
pattern: "java.lang.OutOfMemoryError"
matchExactString: false
caseSensitive: false
printMatchedString: false
# End OF Java_Out_Of_Memory
我不知道匹配的字符串有多少空格…前导空格可能因文件而异。
I tried this
sed -i '/^[^#]*caseSensitive:*/a \ printMatchedString: false'
所以我的要求是在下面加一行,甚至考虑行距
注意:-我有以上多配置,我需要在每个配置上添加PrinitMatched字符串
试试这个:
sed -E '/^[^#]*caseSensitive:/ {p; s/^([[:blank:]]*)[^[:blank:]].*$/1printMatchesString: false/;}' myfile.txt
解释:
/^[^#]*caseSensitive:/
-匹配"大小写敏感:"(前面没有"#"> ){
-执行以下命令块p
-打印当前行(以其原始形式)s/^([[:blank:]]*)[^[:blank:]].*$/1printMatchesString: false/
-将行解析为一堆空白(在双亲中,所以它是一个捕获组),然后剩下的是什么,并将其替换为空白(1
回忆捕获组)和"printMatchesString: false"请注意,结果将自动打印。}
-标记命令组的结束