gpt4 book ai didi

linux - 如何在grep中传递多个变量

转载 作者:行者123 更新时间:2023-12-04 19:35:27 26 4
gpt4 key购买 nike

我有一个使用 curl 下载的 json 文件。它有一些融合页面的信息。我只想提取下载信息的 3 个部分 - 即页面: id、状态和头衔 .
我为此编写了一个 bash 脚本,但我的限制是我不确定如何 在 grep 命令中传递多个变量

id=id         #hardcoded 
status=status #hardcoded

echo Enter title you are looking for: #taking input from user here read title_name echo echo echo Here are details

curl -u username:password -sX GET "http://X.X.X.X:8090/rest/api/content?type=page&start=0&limit=200" | python -mjson.tool | grep -Eai "$title_name"|$id|$status"

最佳答案

除了一个错字(你有一个不平衡的报价 - 在你发布一些东西之前,请务必检查语法的正确性),你的方法的基本思想将适用于

grep -Eai "$title_name|$id|$status" 
将选择那些包含那些包含变量 title_name 之一内容的行的文本行, idstatus .
但是,这是一个非常脆弱的解决方案。我不知道这些变量的实际内容是什么,但例如,如果 title_name被设置为 X.Z ,它也会匹配包含字符串 XYZ 的行,因为点匹配任何字符。同样,如果 title_name例如,将包含一个单独的 [( , grep 会提示不匹配的括号错误。
如果要匹配字符串 字面意思 并且不被视为正则表达式,最好将这些模式写入文件(每行一个模式)并使用
grep -F -f patternfile
用于搜索。当然,既然你用的是bash,也可以用 process substitution如果您不想使用显式临时文件。

关于linux - 如何在grep中传递多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67895493/

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