Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用awk中的变量提取xml_Bash_Shell_Awk - Fatal编程技术网

Bash 使用awk中的变量提取xml

Bash 使用awk中的变量提取xml,bash,shell,awk,Bash,Shell,Awk,我希望搜索XML文件以提取包含此字符串的特定XML块58B338939C5B1970E1008000AC10E225\U HCA\U 13 我可以通过以下命令执行此操作: awk 'BEGIN{RS="<[/]?WorkResponseMessage>"} /58B338939C5B1970E1008000AC10E225_HCA_13/{print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml awk'BEG

我希望搜索XML文件以提取包含此字符串的特定XML块58B338939C5B1970E1008000AC10E225\U HCA\U 13

我可以通过以下命令执行此操作:

  awk 'BEGIN{RS="<[/]?WorkResponseMessage>"} /58B338939C5B1970E1008000AC10E225_HCA_13/{print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
awk'BEGIN{RS=”“}/58B338939C5B1970E1008000AC10E225_HCA_13/{print$0,“}”ag1.xml>ag2.xml
我的查询是,我想从命令行传递变量中的搜索字符串,并使用该变量进行搜索,例如:

  awk 'BEGIN{RS="<[/]?WorkResponseMessage>"} /$m/{print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
awk'BEGIN{RS=”“}/$m/{print$0,“}”ag1.xml>ag2.xml
这里‘m’是我的变量。我可以在“m”中获取值,但它似乎不适用于awk命令。我也尝试过用引号(“,”)来表示m,但这也不起作用。awk-v选项也不适用于此

请尝试以下操作-

m="58B338939C5B1970E1008000AC10E225_HCA_13"
echo $m
awk -v m="$m" 'BEGIN{RS="<[/]?WorkResponseMessage>"} $0 ~ m {print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
m=“58B338939C5B1970E1008000AC10E225\U HCA\U 13”
回音万元
awk-v m=“$m”'开始{RS=”“}$0~m{print$0,“}”ag1.xml>ag2.xml
试试这个-

m="58B338939C5B1970E1008000AC10E225_HCA_13"
echo $m
awk -v m="$m" 'BEGIN{RS="<[/]?WorkResponseMessage>"} $0 ~ m {print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
m=“58B338939C5B1970E1008000AC10E225\U HCA\U 13”
回音万元
awk-v m=“$m”'开始{RS=”“}$0~m{print$0,“}”ag1.xml>ag2.xml

使用XML/HTML解析器(xmllint、xmlstarlet…)。。。您的输入在哪里?使用XML/HTML解析器(xmllint、xmlstarlet…)。。。您的输入
XML
在哪里?