如何用单词找到一行并用内容替换整个行?
这就是我所拥有的,要在任务后插入的变量:+ 6个字符 WG =“ AREA001”
原件: '打印-处理:14052549任务:001伦敦'
预期结果: '打印-处理:14052549任务:001 AR:AREA001 LONDON'
WG = '<subject>Print Card Workgroup XXXXX Task: 001</subject>
cat test1.xml | sed -e "s/<subject>\<subject>$WG" > test2.xml
错误:
/gd: command garbled: s/<subject>/<subject>Print Card Workgroup XXXXX Task: 001</subject>
解决方案:
答案 0 :(得分:0)
编辑:
正如@Glenn所纠正的那样,变量$ WG的内容包含/
,因此需要转义:
sed -e "s/^.*\<subject\>.*$/${WG//\//\\\/}/"
将包含单词<subject>
的任何行替换为变量WG
的内容:
cat test1.xml | sed -e "s/^.*\<subject\>.*$/$WG/g"
正如@Benjamin所说,在分配变量时,您需要删除=
周围的空格:
WG='<subject>Print Card Workgroup XXXXX Task: 001</subject>'