RH442攻略之awk
2014-03-16 14:42
429 查看
awk主要用于对数据按列进行处理,而sed主要针对行进行操作,两者经常被用在shell脚本中进行数据处理
输出指定列
$1代表第一列,$NF代表最后一列,$(NF-1)即倒数第二列,print表示输出结果并换行,printf表示输出结果不换行
awk '{print $1,$NF}' test #输出test中的第一列和最后一列(命令中的逗号将被替换为空格)
-F 用于指定分割字符
awk -F: '{print $1}' /etc/passwd #输出/etc/passwd中的第一列,即系统中的用户名
输出结果中间可以加入自定义的字符串
BEGIN和END可以给首行和末行加上字符串
结合其他命令使用
awk也可以用正则表达式进行匹配
awk用在RH442学习时,主要用于处理sar收集来的数据
输出指定列
$1代表第一列,$NF代表最后一列,$(NF-1)即倒数第二列,print表示输出结果并换行,printf表示输出结果不换行
awk '{print $1,$NF}' test #输出test中的第一列和最后一列(命令中的逗号将被替换为空格)
-F 用于指定分割字符
awk -F: '{print $1}' /etc/passwd #输出/etc/passwd中的第一列,即系统中的用户名
输出结果中间可以加入自定义的字符串
[root@server7 ~]# awk -F: '{print $1,"is using " $NF,"shell"}' /etc/passwd root is using /bin/bash shell bin is using /sbin/nologin shell daemon is using /sbin/nologin shell ... ... [root@server7 ~]# awk -F: '{print $1 " is using " $NF " shell"}' /etc/passwd #将分割用空格写到字符串中,输出结果与上一条命令一致 root is using /bin/bash shell bin is using /sbin/nologin shell daemon is using /sbin/nologin shell ... ...
BEGIN和END可以给首行和末行加上字符串
[root@server7 ~]# awk -F: 'BEGIN{print "User List:"} {print $1} END{print "Done!"}' /etc/passwd User List: root bin ... ... student visitor Done!
结合其他命令使用
[root@server7 ~]# df -hP| grep -v ^Filesystem | awk 'BEGIN{print "File system state:"}{print $1,"have",$(NF-2),"available"}END{print "Done!"}' File system state: /dev/mapper/vgsrv-root have 1.8G available tmpfs have 499M available /dev/vda1 have 172M available /dev/mapper/vgsrv-home have 226M available Done!
awk也可以用正则表达式进行匹配
[root@server7 ~]# awk -F: '/^[a-z]*t:/{print "Username end with \"t\" is",$1}' /etc/passwd Username end with "t" is root Username end with "t" is halt Username end with "t" is rtkit Username end with "t" is abrt Username end with "t" is student
[root@server7 ~]# awk '/^[[:alpha:][:space:]]+$/ {print}' /usr/share/doc/zip-*/README #筛选出只有字母和空格的行[:alpha:]表示所有字母,[:space:]表示空格 are mostly identical and there is a simple procedure to convert between the paths and names of files in other character sets to be accurately recreated maintains backward compatibility with older archives and is mostly compliant and Windows and DOS users will need to either convert the files as needed to is to use zip to convert a split archive to a single file archive and then use the encryption code was distributed separately because of the US export automatic notification of all postings there so try one of the other methods Note that the above message also may actually mean you have only part but are not needed on ports that do not expand file paths like recommend you include in your product documentation an acknowledgment and note that the original compression sources are available at
awk用在RH442学习时,主要用于处理sar收集来的数据
[root@server7 ~]# sar -q | awk '/^[^a-z]+$/ {print $1"\t"$3}' #取出时间和进程数两列数据 02:20:01 225 02:30:01 225 02:40:01 225 02:50:01 223 03:00:01 223 03:10:01 224 03:20:02 224 03:30:01 226 03:36:01 228
相关文章推荐
- RH442攻略之mpstat
- RH442攻略之module
- RH442攻略之vmstat
- RH442攻略之sar
- RH442攻略之tuned
- RH442攻略之资源限制
- RH442攻略之gnuplot
- RH442攻略之iostat
- RH442-3 队列技术
- RH442-11 网络调优之一
- RH442-4 利用sar收集系统性能
- RH442-11 网络调优之二
- RHCA学习笔记:RH442-Unit6 磁盘性能调整
- RH442-10 内存回收之一
- rh442 - Linux下cpu使用率load average的简单理解
- RH442-8 内存地址和分配之一
- RH442-10 内存回收之二
- SED与AWK命令攻略大全
- RH442-8 内存地址和分配之二
- RH442 - 通过cgroup来限制kvm虚拟机只使用host的某个cpu和内存大小