如果文件中存在另一个字符串,Linux bash 脚本将更改一个字符串

标签 linux bash shell

我需要一个 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/

相关文章:

python 在服务器上部署应用程序

java - 从 Java 执行源命令

linux - 将多个 SFTP 命令行转换为单行命令行

linux - 从 Linux shell 发送邮件的格式不正确

linux - Bash 脚本问题

linux - 什么是EOF!!在 bash 脚本中?

java - 使用 Java 构建 Maven : How to execute script located in resources?

shell - 查找目录中的所有 *.sh 文件

c++ - 尝试使用 SDL_WINDOWID 在 QT4 中制作 SDL 小部件,但无法显示小部件

linux - bash 脚本命令 "trap"在 docker 容器中不起作用