POSIX 可移植文件名字符集由大写字母 A 到 Z、小写字母 a 到 z、十进制数字 0 到 9、句号、下划线和连字符组成。如果字段不是这样,我想产生一个错误。我已经可以检查该字段必须以“/”开头,但很难报告给定文件路径中非法字符的错误。我的代码:
{if ($6 !~ /[a-zA-Z0-9_\/.-]{0,100}$/) print NR ": ERROR The directory contains illegal characters" }
这不会发现非法字符并按其应有的方式报告它们。输入:/Bin**/home 输出:警告发现非法字符(因为“**”)
想要修复我的 AWK 命令。
答案1
这个怎么样 ?
awk '$6~/[^a-zA-Z0-9_\/.-]/{print NR ":Illegal Characters"}' filename