linux - 流文件内容直到遇到子字符串
问题描述
我正在使用:
bash $ head -n 2 *.xml | grep (..stuff..)
将所有 xml 文件的前 2 行流式传输到 grep 命令。但是,我意识到这对于这些文件的结构并不可靠。
我需要的是流式传输每个 xml 文件的开头,直到遇到特定的子字符串(所有这些文件都有)。
head 不提供该级别的粒度。子字符串只是标签的开始(例如“< tag start”)。我会很感激任何想法。谢谢!
解决方案
我感谢所有的回应。我发现我真的只需要单个标签的内容,而不是从 xml 文件的开头。这简化了解析。例如:
<mt:myTag LOTSOFSTUFF >"
,我真的只需要 LOTSOFSTUFF。所以我只是做了:
grep -oP "<mt:myTag(.*)>" *.xml | grep_more
这确实有效。再次感谢。我真的很感激,也很抱歉,我没有意识到我的用例比我想象的要简单。
推荐阅读
- python - 用分隔符分割字符串
- python - statsmodels 自相关不使用所有值
- javascript - 如何将路径到对象的极深道具映射到带有一些额外道具的新对象?
- java - 在方法中使用正则表达式输出
- android - 关于在 Flutter 中创建风味
- unity3d - 统一的 2D 布娃娃运动
- python-3.x - 使用 Python 将属性从 AWS Connect 传递到 Lambda
- vb.net - 在 RichTextBox 中获取实际的 SelectionStart 位置?
- node.js - 节点 - 将表与 Sequelize 关联
- arrays - 标记包含过滤器列表中单词的单元格