开发者社区> 问答> 正文

流文件内容直到遇到子字符串

我正在使用:

bash $ head -n 2 *.xml | grep (..stuff..)

将所有xml文件的前2行流式传输到grep命令。但是,我意识到这对于这些文件的结构并不可靠。

相反,我需要的是流式传输每个xml文件的开始,直到遇到特定的子字符串(所有这些文件都具有)为止。

head不提供该级别的粒度。子字符串只是标签的开头(例如,“ <标签开始”之类的东西)。如有任何想法,我将不胜感激。谢谢!

展开
收起
祖安文状元 2020-01-06 16:01:55 386 0
1 条回答
写回答
取消 提交回答
  • 如果您知道匹配字符串之前的最大行数,则可以执行以下操作:

    # cat testfile 
    123
    9
    1
    1
    2
    3
    4000
    TAG
    456
    # grep -m 1 -B 10 TAG testfile | grep -v TAG
    123
    9
    1
    1
    2
    3
    4000
    #
    
    2020-01-06 16:02:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载