我有一个包含以下内容的 xml 文件:
<query_1>false</query_1>
<query_2>true</query_2>
<query_3>true</query_3>
<query_4>false</query_4>
<query_5>false</query_5>
是否可以使用 sed 重新组织文件,因此它会选择“true”并将它们输出到一行中,如下所示:
<query>2,3</query>
问候, 艾瑞克
我有一个包含以下内容的 xml 文件:
<query_1>false</query_1>
<query_2>true</query_2>
<query_3>true</query_3>
<query_4>false</query_4>
<query_5>false</query_5>
是否可以使用 sed 重新组织文件,因此它会选择“true”并将它们输出到一行中,如下所示:
<query>2,3</query>
问候, 艾瑞克
I guess it's not the simplest solution, but you could try this:
sed -n '/<query_[0-9]*>true<\/query/{:a;s/^<query_\([0-9]*\)>.*/\1/;tb;ba;:b;H};${g;s/^\n//;s/\n/,/g};$s/.*/<query>&<\/query>/p' file
The output using your example file is exactly what you want:
<query>2,3</query>
以下命令序列返回您请求的字符串
$ grep true input | sed 's/>//g' | cut -d _ -f 3 | printf "<query>%s</query>" `paste -d, - -`
<query>2,3</query>
给出:
<query>2,3</query>