我确实从 2011 年开始将此问题发布到一个线程(使用 grep 获取 xml 标记内的文本)。我确实尝试使用命令行参数 ($1=filname, $2=tagname) 而不是固定名称来获得最终答案:
grep -E -m 1 -o "<$2>(.*)</$2>" ./private/$1.xml | sed -e 's,.*<$2>\([^<]*\)</$2>.*,\1,g'
显然这不起作用,因为管道后面的部分没有得到参数 $2。我是一个完全的 linux 菜鸟,但我的直觉是管道启动了一个没有得到父参数的新进程。我尝试了谷歌很长一段时间,但确实变得更加困惑。有一个简单的解决方法吗?