修改多个文件中的字符串后的测试

修改多个文件中的字符串后的测试

我想我应该使用sed,但无法正确地将其记下来。

我有一个装满文本文件的文件夹。它们的构造都相同,带有变量列表,例如

NAME=John
AGE=30
CODE=xyz

我需要查看所有文件,并将变量(如 CODE)的值修改为某个值。因此,file1.txt - 更改CODE=xyzCODE=123 file2.txt - 更改CODE=fooCODE=123

我对其所做的更改对于所有文件都将相同。

这是sed最好的吗?

答案1

这应该能够改变这些值:

find /path/to/foler/ -type f -exec sed 's/CODE=.../CODE=123/' {} \;

运行上述代码不会改变任何内容,但可以让您看到发生了哪些变化。要使其更改这些值,请添加标志-i

find /path/to/folder/ -type f -exec sed -i 's/CODE=.../CODE=123/' {} \;

备份也是可能的,但是考虑到规模,谈论这个可能不是一个好主意。

信息:

  • ...: 仅代表三个字母或字符,因此.将代表一个
  • -type f:我们仅寻找文件
  • -i:就地更改值

相关内容