Linux awk 命令

xiaoxiao2021-02-28  102

功能

awk是Linux下面强大的文本分析工具,相对于grep的查找,sed的编辑,awk把文件逐行读入,以空格为默认分隔符把行切片,然后再进行各种分析处理。

语法

1.命令行方式 awk [-F field-separator] ‘commands’ input-file(s) 其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。 2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行的:#!/bin/sh 可以换成:#!/bin/awk 3.将所有的awk命令插入一个单独文件,然后调用: awk -f awk-script-file input-file(s) 其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

示例

由于平时工作中使用awk大部分基于上述第一种方式,即命令行方式,在此重点介绍命令行方式的几种用法。

1 显示最近登录的5个帐号

[trafodion@openstack-1 ~]$ last -n 5 root pts/0 172.16.10.107 Mon Aug 7 09:49 still logged in root pts/0 172.16.10.107 Fri Aug 4 16:45 - 04:56 (12:11) root pts/1 172.16.10.107 Fri Aug 4 10:52 - 05:04 (18:11) root pts/0 172.16.10.107 Thu Aug 3 18:15 - 12:15 (18:00) root pts/0 172.16.10.107 Thu Aug 3 16:36 - 18:06 (01:29) [trafodion@openstack-1 ~]$ last -n 5 | awk '{print $1}' root root root root root

2 显示/etc/passwd的帐号(-F指定分隔符)

[trafodion@openstack-1 ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin centos:x:500:500::/home/centos:/bin/bash cloudera-scm:x:498:498:Cloudera Manager:/var/lib/cloudera-scm-server:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash ntp:x:38:38::/etc/ntp:/sbin/nologin flume:x:497:496:Flume:/var/lib/flume-ng:/bin/false hdfs:x:496:495:Hadoop HDFS:/var/lib/hadoop-hdfs:/bin/bash solr:x:495:494:Solr:/var/lib/solr:/sbin/nologin zookeeper:x:494:493:ZooKeeper:/var/lib/zookeeper:/bin/false llama:x:493:492:Llama:/var/lib/llama:/bin/bash httpfs:x:492:491:Hadoop HTTPFS:/var/lib/hadoop-httpfs:/bin/bash mapred:x:491:490:Hadoop MapReduce:/var/lib/hadoop-mapreduce:/bin/bash sqoop:x:490:489:Sqoop:/var/lib/sqoop:/bin/false yarn:x:489:488:Hadoop Yarn:/var/lib/hadoop-yarn:/bin/bash kms:x:488:487:Hadoop KMS:/var/lib/hadoop-kms:/bin/bash hive:x:487:486:Hive:/var/lib/hive:/bin/false sqoop2:x:486:485:Sqoop 2 User:/var/lib/sqoop2:/sbin/nologin oozie:x:485:484:Oozie User:/var/lib/oozie:/bin/false hbase:x:484:483:HBase:/var/lib/hbase:/bin/false sentry:x:483:482:Sentry:/var/lib/sentry:/sbin/nologin impala:x:482:481:Impala:/var/lib/impala:/bin/bash spark:x:481:480:Spark:/var/lib/spark:/sbin/nologin hue:x:480:479:Hue:/usr/lib/hue:/bin/false rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin trafodion:x:501:501::/home/trafodion:/bin/bash daniel:x:502:502::/home/daniel:/bin/bash You have mail in /var/spool/mail/trafodion [trafodion@openstack-1 ~]$ cat /etc/passwd | awk -F ':' '{print $1}' root bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody vcsa saslauth postfix sshd centos cloudera-scm rpc apache postgres ntp flume hdfs solr zookeeper llama httpfs mapred sqoop yarn kms hive sqoop2 oozie hbase sentry impala spark hue rpcuser nfsnobody trafodion daniel

3 显示Trafodion中的mxosrvr进程

[trafodion@openstack-1 ~]$ sqps | grep mxo [$Z000AB8] 000,00011943 001 GEN ES--A-- $Z0009R8 NONE mxosrvr [$Z000AB8] 000,00011958 001 GEN ES--A-- $Z0009RN NONE mxosrvr [$Z000AB8] 000,00012034 001 GEN ES--A-- $Z0009TU NONE mxosrvr [$Z000AB8] 000,00012067 001 GEN ES--A-- $Z0009US NONE mxosrvr [$Z000AB8] 001,00062342 001 GEN ES--A-- $Z011FW7 NONE mxosrvr [$Z000AB8] 001,00062379 001 GEN ES--A-- $Z011FX9 NONE mxosrvr [$Z000AB8] 001,00062403 001 GEN ES--A-- $Z011FXY NONE mxosrvr [$Z000AB8] 001,00062409 001 GEN ES--A-- $Z011FY4 NONE mxosrvr You have mail in /var/spool/mail/trafodion [trafodion@openstack-1 ~]$ sqps | grep mxo | awk '{print $2}' 000,00011943 000,00011958 000,00012034 000,00012067 001,00062342 001,00062379 001,00062403 001,00062409
转载请注明原文地址: https://www.6miu.com/read-75714.html

最新回复(0)