1.awk 的基本认识和使用方法, 参考下面链接
https://www.cnblogs.com/timxgb/p/4658631.html
2.awk 中关于条件判断的用法, 如
https://blog.csdn.NET/shallnet/article/details/38821311
3. 如果想根据域值中字符串的长度进行匹配怎么处理?
如: 我想根据文件中某个域的字符串长度为依据进行操作, 比如 cat /etc/shadow 会列出所有的用户和密码, 但是我只想要登陆用户的信息如 root,edan, 那么合适的方法就是根据 $2 的长度进行筛选,
- cat /etc/shadow
- root:$6$dwjAu.qXH/9kHHXo$JXoCNWfaSu5kEG8Ievwz0mt5VhpK.dYUV9QZWajUWouxrKObtu9Xs/QcqY4fgy01zkrLlj2mz.ZQzrPeW6XCJ/::0:99999:7:::
- bin:*:17632:0:99999:7:::
- daemon:*:17632:0:99999:7:::
- adm:*:17632:0:99999:7:::
- lp:*:17632:0:99999:7:::
- sync:*:17632:0:99999:7:::
- avahi:!!:17772::::::
- postfix:!!:17772::::::
- tcpdump:!!:17772::::::
- edan:$6$cWYNkm9fqWMu9/kn$KyhURpDWcFxrWhzap6BozIMgpAnspfsX2eL4b.XvsXFfQNi9QQJkzPO7cjxkwmSx7iDq12dzYA5OmjwK5SI47/::0:99999:7:::
操作如下:
- cat /etc/shadow | awk -F: '{if(length($2)>4=10) print}'
- root:$6$dwjAu.qXH/9kHHXo$JXoCNWfaSu5kEG8Ievwz0mt5VhpK.dYUV9QZWajUWouxrKObtu9Xs/QcqY4fgy01zkrLlj2mz.ZQzrPeW6XCJ/::0:99999:7:::
- edan:$6$cWYNkm9fqWMu9/kn$KyhURpDWcFxrWhzap6BozIMgpAnspfsX2eL4b.XvsXFfQNi9QQJkzPO7cjxkwmSx7iDq12dzYA5OmjwK5SI47/::0:99999:7::
通过 length 计算字符串的长度, 只要比 * 或者!! 长度长就可以, 不一定非要大于 10
来源: http://www.bubuko.com/infodetail-2803227.html