grep -v "^[[:space:]]*#" 这句是匹配不包含空格制表符开头的行
awk 'BEGIN{FS=":"}{if($1~/^[[:space:]]*[^#]/) print $1}'
这句awk 匹配的也是不包含空格制表符开头的行 打印了变量1
grep -v 是取反
awk 中 ~ 是正向匹配
这是为什么??
grep -v "^[[:space:]]*#" 这句是匹配不包含空格制表符开头的行
awk 'BEGIN{FS=":"}{if($1~/^[[:space:]]*[^#]/) print $1}'
这句awk 匹配的也是不包含空格制表符开头的行 打印了变量1
grep -v 是取反
awk 中 ~ 是正向匹配
这是为什么??
正则表达式的* 表示其前置字符出现0次或多次
grep -v "^[[:space:]]*#" 的意思就成了 不包含#
awk 'BEGIN{FS=":"}{if($1~/^[[:space:]]*[^#]/) print $1}' 也是不包含#
看你的意思可能是要:grep -v "^[[:space:]].*#" 不以空制表符开头且不包含#