如何提取大括号内以Mat开头的字符串并添加逗号输出
问题解决:提取大括号内以"Mat"开头的字符串并添加逗号输出
你的原awk命令存在两个核心问题:
BEGIN {/Mat/}完全无效,BEGIN块是在处理输入行前执行的,这里的正则表达式不会对任何输入行做筛选判断。- 没有添加对大括号内内容(即$2字段)是否以"Mat"开头的判断逻辑,会导致所有大括号内的内容都被输出。
修正后的awk命令如下:
awk -F"[{}]" '$2 ~ /^Mat/ {gsub(/ /, "", $2); print $2","}' in
命令说明
-F"[{}]":将字段分隔符设置为大括号,这样大括号包裹的内容会被识别为第二个字段($2)。$2 ~ /^Mat/:仅处理$2字段以"Mat"开头的行,精准筛选目标内容。gsub(/ /, "", $2):移除$2字段内的所有空格,确保输出格式整洁。print $2",":输出处理后的字符串,并在末尾添加逗号。
示例验证
假设输入文件in内容为:
import { MatDialog } from '@angular/material/dialog';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
执行命令后输出:
MatDialog, MatButtonModule,
内容的提问来源于stack exchange,提问作者albertkao9
相关产品推荐
相关产品推荐

