linux - 匹配列值的正则表达式问题
问题描述
我编写了一个脚本来从与 col 元数据文件中定义的模式不匹配的文件中提取列值。
但它没有返回正确的输出。谁能在这里指出这个问题?我试图用双引号匹配字符串。引号也需要匹配。
代码:
`awk -F'|' -v n="$col_pos" -v m="$col_patt" 'NR!=1 && $n !~ "^" m "$" {
printf "%s:%s:%s\n", FILENAME, FNR, $0 > "/dev/stderr"
count++
}
END {print count}' $input_file`
运行输出:- ++ awk '-F|' -vn=4 -v 'm="[az]+@gmail.com"' 'NR!=1 && $n !~ "^" m "$" { printf "%s:%s:%s\n ", 文件名, FNR, $0 > "/dev/stderr" count++ } END {打印计数}' /test/data/infa_shared/dev/SrcFiles/datawarehouse/poc/BNX.csv
10,22,"00AF","abc@gmail.com",197,10,1/1/2020 12:06:10.260 PM,"BNX","Hard b","50","Us",1 ,"25" - 输出中不应出现此行,因为它与电子邮件模式 "[az]+@gmail.com" 匹配。模式是从以下文件中提取的
模式提取的输入文件 file_col_metadata
FILE_ID~col_POS~COL_START_POS~COL_END_POS~datatype~delimited_ind~col_format~columnlength 5~4~~~char~Y~"[az]+@gmail.com"~100
解决方案
如果你awk -F'|' ...
用它替换awk -F',' ...
它将工作。
推荐阅读
- python - 如何键入 \ 作为字符串?
- java - 生成具有多级数据的条形码以回读到 Android 应用程序?
- html-table - 表格背景 - 图像的画布上带有文本的链接?
- .htaccess - 我写了一个 .htaccess RewriteRule 但它不工作
- python - 如何将角度从float转换为int
- ssis - 将数据从 csv 文件加载到 SQL Server 表的 SSIS 问题
- javascript - 我需要映射这个数组并输出过去 7 天与当前日期的“级别”差异
- python - 未捕获的 ReferenceError jquery 和 Django (model.Form)
- html - 谷歌浏览器自动填充:如何阻止错误的用户数据输入
- robotframework - 使用 Robot 框架进行自动化测试:在同一浏览器上打开的窗口之间切换