gpt4 book ai didi

linux - 如何在 bash shell 中读取带有部分的配置文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:54 27 4
gpt4 key购买 nike

我有这样的配置文件 sections

[rsync_includes]
user
data
conf


[rsync_exclude]
tmp
.pyc
*/vendor


[javascript]
utils
data

我有我想在该文件中的 rsync 和其他配置数据中排除的模式

现在我很困惑如何在命令行上使用这些模式

rsync -avz --exclude-from 'content from config file rsync exclude' source/ destination/

我不确定如何读取部分配置文件然后在命令行上使用

最佳答案

要使用--exclude-from,您必须将配置的相关部分隔离到一个临时文件中。使用一点 sed 很容易做到这一点:

tmp_file=$(mktemp)
sed -n '1,/rsync_exclude/d;/\[/,$d;/^$/d;p' config.file > $tmp_file
rsync -avz --exclude-from $tmp_file source/ destination/

为清楚起见,我省略了错误检查和清理。

请注意,rsync 可以从标准输入中读取 - 输入的排除模式,因此这更短:

sed -n '1,/rsync_exclude/d;/\[/,$d;/^$/d;p' config.file | \
rsync -avz --exclude-from - source/ destination/

解释

  • 1,/rsync_exclude/d 排除直到 rsync_exclude 部分条目的所有行
  • /\[/,$d 排除了从下一节开始到文件结尾的所有内容
  • /^$/d 排除空行(这是可选的)

以上所有内容都从配置中提取相关部分。

关于linux - 如何在 bash shell 中读取带有部分的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21347695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com