我需要一个 linux bash 脚本来为所有文件循环一个文件夹,并检查其中是否有一个字符串,然后更改其中的另一个字符串。例如,我们检查文件是否包含 AAAA,然后将 BBBB 替换为 CCCC,如果没有 AAAA,我们将 DDDD 更改为 EEEE。
我写了一些代码,但我不确定它们是否能正常工作:
#!/bin/bash
PATH = /path/to/files/* # files has no extension
for file in $PATH; do
if grep -q "AAAA" $file; then
replace "BBBB" "CCCC" -- $file
else
replace "DDDD" "EEEE" -- $file
fi
done
最佳答案
单行代码完成您的工作:
for i in /path/to/files/* ; do if grep -q AAAA "$i" ; then sed -i 's/BBBB/CCCC/g' "$i" ; else sed -i 's/DDDD/EEEE/g' "$i" ; fi ; done
关于如果文件中存在另一个字符串,Linux bash 脚本将更改一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914682/