如何将变量内容作为输入传递给xml_grep命令?
问题原因
xml_grep默认仅支持读取本地文件路径作为输入,你通过管道传递标准输入内容时,它会默认尝试把-(代表标准输入的占位符)当成真实文件名去读取,才会抛出找不到文件的报错。
可用解决方法
方法1:新增
--stdin参数显式指定从标准输入读取内容,这是最简便的方案
命令示例:echo "$Var" | xml_grep 'aaa' --text_only --stdin注意变量要包裹双引号,避免xml里的特殊字符被shell转义丢失。
方法2:使用进程替换把变量内容伪装成临时文件传入,适合不想用管道的场景(支持bash、zsh等常见shell)
命令示例:xml_grep 'aaa' <(echo "$Var") --text_only方法3:先将变量写入临时文件再处理,兼容性最好,适合所有shell环境
命令示例:# 写入临时文件 echo "$Var" > /tmp/var_temp.xml # 执行xml_grep xml_grep 'aaa' /tmp/var_temp.xml --text_only # 用完删除临时文件 rm -f /tmp/var_temp.xml
内容的提问来源于stack exchange,提问作者Lv2eof
相关产品推荐
相关产品推荐

