目的:想提取/etc/passwd文件中的第6列
测试服务器上运行awk -F '[:/]+' '{print $6}' /etc/passwd
与awk -F '[:/]+' '{print $(NF-2)}' /etc/passwd
二种方式结果不一样,截取部分结果如下:
方法一正向提取 输出正确 符合预期
方法二反向提取 输出不符合预期
怀疑数据过大导致结果不一样,重新创建新文件demo.txt
用上述两种方式提取,结果都符合预期
疑问:为什么数据多了会报错
目的:想提取/etc/passwd文件中的第6列
测试服务器上运行awk -F '[:/]+' '{print $6}' /etc/passwd
与awk -F '[:/]+' '{print $(NF-2)}' /etc/passwd
二种方式结果不一样,截取部分结果如下:
方法一正向提取 输出正确 符合预期
方法二反向提取 输出不符合预期
怀疑数据过大导致结果不一样,重新创建新文件demo.txt
用上述两种方式提取,结果都符合预期
疑问:为什么数据多了会报错
你没发现你的命令二最后都报错了嘛,你打印下NR就知道多少行有问题了
这里表示错误行数
重新执行awk 'NR>2064{print $0}' /etc/passwd|less
2065行确实格式不一样
谢谢老师!