gpt4 book ai didi

linux - 评估文件中的 shell 命令

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:48 25 4
gpt4 key购买 nike

我有一个名为 foo.txt 的文件,其内容为:

Fusce porttitor tortor nisl, eu commodo mi mattis eu. Ut sodales, 
nulla in facilisis ultrices, diam ante dapibus mi, at mollis
arcu ante vitae lectus. Aenean vitae bibendum massa, in varius est.
`cat baz.txt`
Mauris quis turpis venenatis, ultrices ipsum ac, mollis tellus.

我想要一个可以使用它调用的 shell 命令

./cmd.sh foo.txt

用评估该命令的结果替换每个 ` 引用的 shell 命令。如何做到这一点(最好使用 Bash)?

作为奖励:我希望这种情况能够递归发生。也就是说,如果我的 baz.txt 文件包含更多 ` 引用的 shell 命令,我也希望对它们进行评估。

最佳答案

尽管 @chepner 表达了安全担忧,我还是找到了以下 awk 解决方案。它不是递归的,但它可以。

awk -F"\"" '
$1=="SHELL " && NF>=2 {
system($2)
next
}
{print}' "$@"

该脚本在 SHELL "foo" 形式的文件中查找行,并用执行 "foo" 的结果替换这些行。

关于linux - 评估文件中的 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010388/

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