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

标签 linux shell sed

我在目录中有一些文件,当我 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/

相关文章:

c++ - 段错误(代码已转储)

linux - 如何将重命名cmd指向目录

ios - 从 plutil 获取信息

linux - Hadoop 信息 ipc.Client : Retrying connect to server localhost/127. 0.0.1:9000

android - 可以从 Android 应用程序调用它们的合法 linux 命令?

ssh - 如何在shell脚本中使用ssh命令?

linux - 如何使用文件的行作为命令的参数?

bash - 打印由第二个文件索引的行

awk - 如何打印包含值的列

bash - 如何用字符串替换一行中特定范围的位置?