linux - 如何通过 sed 或 awk 递归替换文件中的字符串?

标签 linux macos awk sed

我想知道如何从命令行搜索 各种 .rb 文件中的字符串。

替换:

.delay([ANY OPTIONAL TEXT FOR DELETION]).

.delay.

除了 sed 和 awk 之外,操作系统中是否包含任何其他更适合该任务的命令行工具?

状态

到目前为止,我有以下正则表达式:

.delay\(*.*\)\.

我想知道如何只匹配以第一个右括号结尾的表达式?并避免替换:

.delay([ANY OPTIONAL TEXT FOR DELETION]).sometext(param)

提前致谢!

最佳答案

如果您需要查找和替换文件中的文本 - sed 似乎是最好的命令行解决方案。

在文本文件中搜索字符串并替换:

sed -i 's/PATTERN/REPLACEMENT/' file.name

或者,如果您需要处理文件中多次出现的 PATTERN,请添加 g

sed -i 's/PATTERN/REPLACEMENT/g' file.name

对于多个文件处理 - 将文件列表重定向到 sed:

echo "${filesList}" | xargs sed -i ...

关于linux - 如何通过 sed 或 awk 递归替换文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43130251/

相关文章:

xcode - 如何从我的 XCode Assets 目录中获取 CGImage

bash - 使用 bash 如何在一行中获取网络设备名称和 IP 地址?

python - 默认 python/usr/bin/python 而不是/usr/local/bin/python

linux - 使用 sed 或 awk 重命名多个文件

php - 在 Centos 5.5 上安装 phpMyAdmin

python - pip 安装 psycopg2 不工作

mysql - root 用户访问被拒绝 - MAC OS 上的 mysql

awk - 用 FS (awk) 分隔字符串的所有字符

bash - 在每个时间 block 之间添加空行

c - 多线程访问数据结构