Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 在匹配字符串(包括匹配字符串)之后获取所有内容的最佳方法?_Bash - Fatal编程技术网

Bash 在匹配字符串(包括匹配字符串)之后获取所有内容的最佳方法?

Bash 在匹配字符串(包括匹配字符串)之后获取所有内容的最佳方法?,bash,Bash,我有一个xml文件,我想使用grep(或使用另一个命令)获取thisistest,之后的所有内容,包括我刚才指定的匹配字符串 做这件事最好的方法是什么?我看到多个查询在匹配字符串之后获得,但从最终输出中排除正在搜索的字符串 因此,输出将是: <id>thisIsATest</id> ... rest of xml file after the above tag thisistest ... 上述标记后面的xml文件的其余部分 不要用正则表达式解析xml。要在命令行上进

我有一个xml文件,我想使用grep(或使用另一个命令)获取
thisistest
之后的所有内容,包括我刚才指定的匹配字符串

做这件事最好的方法是什么?我看到多个查询在匹配字符串之后获得,但从最终输出中排除正在搜索的字符串

因此,输出将是:

<id>thisIsATest</id>
... rest of xml file after the above tag
thisistest
... 上述标记后面的xml文件的其余部分

不要用正则表达式解析xml。要在命令行上进行快速、不稳定、肮脏的黑客攻击,您可以使用
awk

awk '/<id>thisIsATest<\/id>/{p=1}p' input.file
awk'/thisistest/{p=1}p'input.file

解释,我正在检查模式
thisistest
,并在找到变量
p=1
后设置它。如果
p
为真,
awk
将打印行,表示模式出现时的任何行,包括它。

您应该发布输入xml和预期输出I Roman,我已经添加了预期输出。嗨,不清楚:它应该使用标记还是使用文本?结束“根”标记是否应该出现在结果中?