文本中如果第一列的全部是数字而且是8位的话,添加新域值为1,否则添加新域值为0
echo "a123 bbbb 1234 12345678 99999999" | sed 's| |\n|g' | awk '{if($1~/^[0-9]{8}$/){print $0,1}else{print $0,0}}'
结果: (是错误的)
a123 0
bbbb 0
1234 0
12345678 0
99999999 0
修正后,添加(--posix),结果是正确的
echo "a123 bbbb 1234 12345678 99999999" | sed 's| |\n|g' | awk --posix '{if($1~/^[0-9]{8}$/){print $0,1}else{print $0,0}}'
a123 0
bbbb 0
1234 0
12345678 1
99999999 1