我需要替换文件中的一些字符串,但是当字符串位于大括号内时,我需要跳过它。像仅在大括号外的文件中替换字符串
sed -i '/[^{].*foo.*[^}]/ s/foo/bar/g' test.f
测试文件test.f包含的东西是这样的:
bar foo {foobar}bar {foo}
这应该未包裹在括号中的字符串中仅搜索FOO。所以结果应该是:如果字符串开头的括号
bar bar {foobar}bar {foo}
一切都应该被忽略,即在符合“{”应该到相应的忽略“}”。
这不一定要由sed执行。非常感谢。
样品输入:
bar foo {foobar}bar {foo}
foo { foo { foo } foo } foo
foo { foo } foo { foo } foo
预期输出:
bar bar {foobar}bar {foo}
bar { foo { foo } foo } bar
bar { foo } bar { foo } bar
像bar {foo'或'foo} bar'这样的字符串会发生什么? – choroba
嵌套卷曲会发生什么? 'foo {foo {foo} foo} foo'与'foo {foo} foo {foo} foo'。 – choroba
请用上述评论中提供的信息更新问题。这个问题本身目前还不清楚.. –