1
138
那是一条记忆的小路… 很久以前我用Perl代替了awk。 显然,awk正则表达式引擎不捕获其组。 您可能会考虑使用如下内容:
n标志使perl像awk一样循环遍历每一行。 |
2
277
用gawk,你可以使用
例子:
输出
注意实现相关功能的gawk的具体用法。
对于便携式替代方案,您可以使用
例子:
输出
|
3
27
这是我一直需要的,所以我为它创建了一个bash函数。这是基于格伦·杰克曼的回答。 定义将此添加到.bash_配置文件等。
用法为文件中的每一行捕获regex
为文件中的每一行捕获第一个regex捕获组
|
4
12
您可以使用GNU AWK:
|
5
3
您也可以在普通锥子中模拟捕获,不需要扩展。但这并不直观: 步骤1。使用gensub用一些字符串中没有出现的字符来环绕匹配项。 步骤2。对角色使用拆分。 步骤3。分割数组中的其他元素都是捕获组。 $ echo 'ab cb ad' | awk '{ split(gensub(/a./,SUBSEP"&"SUBSEP,"g",$0),cap,SUBSEP); print cap[2]"|" cap[4] ; }' ab|ad |
6
0
我有点纠结于想出一个包含彼得·蒂勒曼答案的bash函数,但我想到的是:
对于下面的正则表达式参数,我发现这比opsb基于awk的bash函数更有效,因为我不希望打印“ms”。
|
mashimena · 如何在Linux中提取列然后通过计算添加新列 1 年前 |
John Smith · 在特定行的末尾添加文本 2 年前 |
nickcrv06 · 使用介于特殊字符之间的awk提取文本 2 年前 |
nickcrv06 · 在两个常量字符串之间提取单词 2 年前 |
JCAvila2 · 我需要了解awk Linux命令的帮助 2 年前 |