Linux - 如何用括号括起来的相同字符串替换一些字符串?

时间:2017-06-06 12:00:40

标签: linux shell sed

我在dir中有一些文件,当我grep一些字符串时,我得到如下的结果。

脚本/ FileReplace> grep -r "case" *

dir1 / file2:案例'a'

dir2 / file3:案例“ssss”

file1:案例1

我使用替换cmd后,我希望文件中的字符串更新如下

CASE('a')

案例(“ssss”)

案例(1)

ie,“case”替换为“CASE”,空格后的文本用括号括起来。

有关如何使用shell cmd执行此操作的任何建议。

1 个答案:

答案 0 :(得分:3)

您可以使用sed及其替换:

find . -type f -exec sed -i 's/case \(.\+\)/CASE (\1)/' {} +
  • .\+匹配至少包含一个字符的任何内容。
  • \(...\)创建了一个捕获组,您可以将第一个捕获组引用为\1
  • 使用-i~代替-i运行将创建文件的备份;特别推荐,如果您只是在尝试。