使用 bash 脚本替换文本文件的一部分

使用 bash 脚本替换文本文件的一部分

我正在编写一个 shell 脚本(bash)来获取和构建一些软件。该脚本还编写了几个小配置文件,并且需要更改几个预先存在的配置文件。从 bash 脚本中查找和替换文本文件的几行的最佳方法是什么?

这听起来像是 的工作sed,但我不明白语法......

答案1

awk/sed/bash/Python/Perl/Ruby 和大多数其他工具/编程语言都可以对文件进行操作。 “最好”的方式是您熟悉且舒适的方式。如果您对 sed 一无所知,请查找并了解它。否则,如果你有一种你知道的编程语言,就用它吧。这是一个 bash 脚本示例

exec 6<"file"
while read -r line <&6
do
  case "$line" in 
    *pattern* )
       line="${line//word/replace}"
  esac
  echo "$line"
done > "out"
exec 6<&-
mv out file

sed 示例

sed 's/word/replace/g' file

awk 示例

awk '{gsub(/word/,"replace")}1' file > t && mv t file

Python 示例(更高版本使用“with”)

for line in open("file"):
    if "pattern" in line:
        line=line.replace("pattern","replace")
    print line

答案2

答案3

sed s/@var@/$VALUE/g <config.in >config/,但要注意 --中的杂散斜杠$VALUE,您可能需要转义它们或使用另一个分隔符。

相关内容