使用RS和RT在Awk命令中匹配多个string【JAVA教程】

!
也想出现在这里? 联系我们
信息

使用RS和RT在Awk命令中匹配多个string,第1张

概述使用RS和RT在Awk命令匹配多个string

我有以下数据:

Example line 0</span> <tag>Example line 1</tag> <span>Example line 1.5</span> –Hello Example line 1.7 <tag> Example line 2 </tag> –Hello Example line 2.7 <span>Example line 4</span>

使用这个命令awk -v RS=\'</tag>\’ \’RT {gsub(/.*?<tag>|n/,\”\”); print \”<tag>\” $0 RT}\’ awk -v RS=\'</tag>\’ \’RT {gsub(/.*?<tag>|n/,\”\”); print \”<tag>\” $0 RT}\’我得到:

<tag>Example line 1</tag> <tag>Example line 2</tag>

不过,我想要的输出是:

<tag>Example line 1</tag> –Hello Example line 1.7 <tag>Example line 2</tag> –Hello Example line 2.7

题:

将十进制数字的序列转换为Big endian float

如何使用bash将一行文本添加到文件的中间?

如何使用AWK从Web日志中收集IP和用户代理信息?

将awk脚本的输出redirect到一个文件

我怎样才能通过我的组/集群过滤只保留不同的column2值?

我只想知道如何添加“或”选项来匹配任何以“ –Hello开头的–Hello 。 什么是适当的方式来实现我的代码?

其他选项:

或者,另一种select是使用grep -o \'<tag.*tag>|^–.*\’但是我也需要find匹配换行符的方法(如这里所述: 匹配string之间的任何内容Grep命令 )。

任何帮助,高度赞赏。

合并非常大的csv文件与公共列

Sed | awk在匹配下一行后删除行

如何使用多个(嵌套)分隔符从文本中提取值

在awk中转义HTML特殊字符

在bash -c中设置variables

你可以修改你以前的awk命令来:

awk -v RS=\'</tag>\’ \’/n–Hello /{print gensub(/.*n(–Hello [^n]*).*/,\”\\1\”,\”1\”)} RT{gsub(/.*<tag>|n/,\”\”); print \”<tag>\” $0 RT}\’ file <tag>Example line 1</tag> –Hello Example line 1.7 <tag>Example line 2</tag> –Hello Example line 2.7

$ cat tst.awk BEGIN { RS=\”–Hello[^\\n]+|<\\/tag>\” } RT { print (RT~/^–/ ? \”\” : gensub(/.*(<tag>)/,1)) RT } $ awk -f tst.awk file <tag>Example line 1</tag> –Hello Example line 1.7 <tag> Example line 2 </tag> –Hello Example line 2.7

以上使用GNU awk来处理多字符RS,RT和gensub()。

总结

以上是内存溢出为你收集整理的使用RS和RT在Awk命令中匹配多个string全部内容,希望文章能够帮你解决使用RS和RT在Awk命令中匹配多个string所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞106 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容