我需要替換文件中的一些字符串,但是當字符串位於大括號內時,我需要跳過它。像僅在大括號外的文件中替換字符串
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
請用上述評論中提供的信息更新問題。這個問題本身目前還不清楚.. –