【发布时间】:2015-12-05 18:08:35
【问题描述】:
您能告诉我如何对文件内多行上多次出现的子字符串的每个实例进行 Grep 处理吗?
我看过 https://unix.stackexchange.com/questions/131399/extract-value-between-two-search-patterns-on-same-line 和How to use sed/grep to extract text between two words?
但我的问题略有不同 - 每个子字符串的前面都将紧跟字符串:name">,并且将在我想要的子字符串的最后一个字符之后立即终止为 < 字符。
所以一行可能是
<"name">Bob<125><adje></name><"name">Dave<123><adfe></name><"name">Fred<125><adfe></name>
我希望输出是:
Bob
Dave
Fred
【问题讨论】:
-
只显示一个样本行不太可能帮助我们为您找到一个可靠的解决方案。您的文字说该问题与多行有关,因此请显示多行。还可以使用
{}编辑器按钮来格式化您的输入/输出/代码文件。 -
所以你真的想用正则表达式解析 XML?请参阅stackoverflow.com/questions/1732348/… 了解为什么不这样做 ;-) 祝你好运。
-
感谢到目前为止的依赖,抱歉我的问题格式不好!
-
感谢迄今为止的依赖,抱歉我的问题格式不佳!我意识到我真正希望的是,如果多组数据不在同一行上,所以我这样做了(得到了这样的想法):
codegrep name\"\> | awk '{ gsub( "\"name\">", "\n\"name\">") } 1'code在每个“name”字段前插入一个新行,(和其他)然后我使用了Grep 和 Cut 只破解数据,它既慢又不优雅,但它确实有效。我当然会看看其他答案并比较它们,谢谢。