linux中awk的应用

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的长度进行筛选,

 1 cat /etc/shadow
 2 root:$6$dwjAu.qXH/9kHHXo$JXoCNWfaSu5kEG8Ievwz0mt5VhpK.dYUV9QZWajUWouxrKObtu9Xs/QcqY4fgy01zkrLlj2mz.ZQzrPeW6XCJ/::0:99999:7:::
 3 bin:*:17632:0:99999:7:::
 4 daemon:*:17632:0:99999:7:::
 5 adm:*:17632:0:99999:7:::
 6 lp:*:17632:0:99999:7:::
 7 sync:*:17632:0:99999:7:::
 8 avahi:!!:17772::::::
 9 postfix:!!:17772::::::
10 tcpdump:!!:17772::::::
11 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

原文地址:https://www.cnblogs.com/edan/p/9773545.html