我在目录中有一些文件,当我 grep 一些字符串时,我得到如下结果。
脚本/文件替换> grep -r "case"*
dir1/file2:case 'a'
dir2/file3:case "ssss"
文件1:案例1
在我使用 replace cmd 之后,我希望文件中的字符串更新如下
案例('a')
案例(“ssss”)
案例(一)
即,“case”替换为“CASE”,空格后的文本如上所示用大括号括起来。
关于如何使用 shell cmd 执行此操作的任何建议。
最佳答案
您可以使用 sed
及其替换:
find . -type f -exec sed -i 's/case \(.\+\)/CASE (\1)/' {} +
.\+
匹配至少有一个字符的任何内容。\(...\)
创建一个捕获组,您可以将第一个捕获组引用为\1
。- 运行
-i~
而不是-i
将创建文件备份;特别推荐,如果你只是试验。
关于Linux - 如何用大括号括起来的相同字符串替换一些字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44389468/