linux - 编辑所有的 Bash 脚本

标签 linux bash sed

我一直无法准确找到我要找的东西,所以我想问问。我正在寻找一种方法来执行以下操作:

  1. 扫描包含编号目录 (25-109) 的目录
  2. 扫描那些编号目录内的目录
  3. 在所有名为“map.inp”的文件中找到包含以下文本的行:“MAP_93= A 93 A”
  4. 将所有匹配项更改为“MAP_93= A 93 V”

通常我会手动执行此操作,但大约有 1000 个文件需要在各自的目录中进行编辑。我找到了一个 linux 方案来实现这一点,但我不确定如何使用具有相同功能的 Bash 脚本。要修改的文件都具有相同的名称,map.inp。

路径都在目录 jan10 中,但在这样的子目录中:

/user/jan10/100/100A/map.inp
/user/jan10/99/99A/map.inp

等等

我发现的 linux 方案会像这样工作:

 find /user/jan10/ \
 name map.inp \
 exec sed -i~ 's/MAP_93=   A   93 A\+/MAP_93=   A   93 V/' {} \;

所需的输入将是:

MAP_89=   A   93 A

输出:

MAP_93=   A   93 V 

有没有人知道如何做到这一点?如果不清楚,我深表歉意,

最佳答案

在上面提到的find命令中,您忘记在nameexec参数之前添加-

find /user/jan10/ -name "map.inp" -exec sed -i 's/MAP_89=   A   93 A\+/MAP_93=   A   93 V/' {} \;

关于linux - 编辑所有的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792066/

相关文章:

shell - 当模式的特定出现匹配时附加到行尾

linux - 如何在使用 shell 脚本满足条件后打印下一行?

linux - 写入用户在 session 期间执行它的所有语句

linux - 从哪里获得 gedit 主题

linux - 从Linux中的文件的第一行提取数字

bash 脚本通过 ssh 进入一个盒子并让我进入 python shell

linux - Linux Pipe命令是否需要一个进程来执行?

linux - 如何在bash函数中保留引号?

python - 子进程中断管道和文件忙

linux - Grep 在 Bash 脚本中没有这样的文件或目录错误,我应该插入等待命令吗?