bash - Bash,通过与 awk 保持匹配来获取子字符串
问题描述
如何使用 awk 拆分字符串但也打印匹配项?
完整的随机字符串:
aaa sasawf wewfTotemeswdwqewqwqtotemwewedew
我需要得到“wewftotemeswdwqewqwqtotemwewedew”,其中子字符串是随机的,唯一的常量是空格和其中的单词totem。当您注意到随机字符串可能包含多个图腾词时,我需要 awk 从第一个匹配项开始获取子字符串。需要明确的是,我需要“wewftotemeswdwqewqwqtotemwewedew”而不是“totemwewedew”。我还需要它不区分大小写
我可以awk -F ' .*totem' '{print$2}'
用来打印eswdwqewqwqtotemwewedew
,但我怎样才能打印比赛呢?
解决方案
使用 GNU awk 作为第三个参数来匹配():
$ echo 'aaa sasawf wewftotemeswdwqewqwq' |
awk 'match($0,/[^ ]*totem[^ ]*/,a) { print a[0] }'
wewftotemeswdwqewqwq
并使用任何 awk:
$ echo 'aaa sasawf wewftotemeswdwqewqwq' |
awk 'match($0,/[^ ]*totem[^ ]*/) { print substr($0,RSTART,RLENGTH) }'
wewftotemeswdwqewqwq
对于与 GNU awk 的不区分大小写匹配:
awk -v IGNORECASE=1 'match($0,/[^ ]*totem[^ ]*/...
并使用任何 awk:
awk 'match(tolower($0),/[^ ]*totem[^ ]*/...
推荐阅读
- android - 如何将“#ffff”字符串颜色作为参数提供给 setBackgroundColor()?
- android - Appium点击功能不点击
- c - 问题排序矩阵/数组:索引和值错误
- apache - 重写 apache 写入规则
- javascript - Jquery在点击时选择表格行不起作用
- mocha.js - 我可以在 mocha awesome html 报告中添加柏树截图吗
- prolog - Prolog中术语的统一
- spring-aop - 这个切入点在 Spring AOP 中是如何工作的?
- c# - 从 WPF 数据网格中当前选定的行获取值的最佳方法是什么?
- pytorch - TypeError:“NoneType”对象在 pytorch 中的 loss.backward 中不可迭代