我在dir中有一些文件,当我grep一些字符串时,我得到如下的结果。
脚本/ FileReplace> grep -r "case" *
dir1 / file2:案例'a'
dir2 / file3:案例“ssss”
file1:案例1
我使用替换cmd后,我希望文件中的字符串更新如下
CASE('a')
案例(“ssss”)
案例(1)
ie,“case”替换为“CASE”,空格后的文本用括号括起来。
有关如何使用shell cmd执行此操作的任何建议。
答案 0 :(得分:3)
您可以使用sed
及其替换:
find . -type f -exec sed -i 's/case \(.\+\)/CASE (\1)/' {} +
.\+
匹配至少包含一个字符的任何内容。\(...\)
创建了一个捕获组,您可以将第一个捕获组引用为\1
。-i~
代替-i
运行将创建文件的备份;特别推荐,如果您只是在尝试。