ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

awk-变量使用

2022-04-24 13:31:39  阅读:111  来源: 互联网

标签:ubuntu2004 passwd etc awk 使用 print root 变量


 awk -F: '{print $1,$3}' /etc/passwd

awk -F: 'BEGIN{print "begin"}{print $1,$3}END{print "end"}' /etc/passwd

root@ubuntu2004:~# df | awk -F" +|%" '{print $1,$5}'
Filesystem Use
udev 0
tmpfs 1
/dev/mapper/ubuntu--vg-ubuntu--lv 13
root@ubuntu2004:~# awk '{print $1}' access_log |sort |uniq -c|sort -nr|head -n3
   4870 172.20.116.228
   3429 172.20.116.208
   2834 172.20.0.222

1,awk变量

常见内置变量 (1)常见选项: -F “分隔符” 指明输入时用到的字段分隔符,默认的分隔符是若干个连续空白符 -v var=value 变量赋值
[root@localhost ~]# awk -v FS="/" '{print $1FS$3}' /etc/passwd
root:x:0:0:root:/bin
#-F 和 FS变量功能一样,同时使用会 -F 优先级高   (2).OFS:输入字段分隔符,默认为空白字符 awk -v FS="/" -v OFS="+++++++" '{print $1,$2}' /etc/passwd (3).RS :输入记录record分隔符,指定输入时的换行符
[root@localhost ~]# cat  test.txt
a,b,c;1,2,3;x,y,z;
[root@localhost ~]# awk -v RS=";" -v FS="," '{print $1}' test.txt
a
1
x
(4)ORS:输出记录分隔符,指定输出时用指定符号代替换行符
[root@localhost ~]# awk -v RS=";" -v FS="," -v ORS="-" '{print $1}' test.txt
a-1-x-
(5).NF:字段数量
[root@localhost ~]# awk -F: '{print NF}' /etc/passwd
7
[root@localhost ~]# awk -F: '{print $NF}' /etc/passwd
/bin/bash
取最后一行  
[root@localhost ~]# df | awk -F" +" '{print $(NF-1)}'
Mounted
0%
0%
1%
0%
8%
100%
1%
26%
1%
0%
[root@localhost ~]# df | awk -F" +|%" '{print $(NF-2)}'

0
0
1
0
8
100
1
26
1
0
Established的HTTP连接的数
[root@localhost ~]# ss -nt | grep "^ESTAB"| awk -F" +|:" '{print $(NF-2)}'
192.168.80.144
192.168.80.181
192.168.80.1

 取行数

root@ubuntu2004:~# awk 'NR==1' access_log 
172.18.118.91 - - [20/May/2018:08:09:59 +0800] "GET / HTTP/1.1" 200 912 "-" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)"
root@ubuntu2004:~# awk '{print NR}' access_log
FNR:各文件分别记录,记录编号
awk '{print NR,$0}' /etc/passwd

自定义变量

root@ubuntu2004:~# awk -v name="CHUAN" BEGIN'{print name}'
CHUAN

printf左对齐 %-

%s:显示字符串
%d, %i:显示十进制整数
%f:显示为浮点数
%e, %E:显示科学计数法数值
%c:显示字符的ASCII码 %g, %G:以科学计数法或浮点形式显示数值
%u:无符号整数
%%:显示%自身
root@ubuntu2004:~# awk -F: '{printf "%-25s\n" ,$1}'       /etc/passwd
root                     
daemon
root@ubuntu2004:~# awk -F: '{printf "%-25s %-25s\n" ,$1,$3}'       /etc/passwd
root                      0                        
daemon                    1
root@ubuntu2004:~# awk -F: '{printf "%-25s |  %-25s\n" ,$1,$3}'       /etc/passwd
root                      |  0                        
daemon                    |  1 
root@ubuntu2004:~# awk -F: '{printf "%-25s |  %-25f\n" ,$1,$3}'       /etc/passwd
root                      |  0.000000                 
daemon                    |  1.000000
root@ubuntu2004:~# awk -F: '{printf "%-25s |  %-25.3f\n" ,$1,$3}'       /etc/passwd
root                      |  0.000                    
daemon                    |  1.000

 ++i 加完了干  i++干完了加

root@ubuntu2004:~# awk 'BEGIN{i=0;print i++,i}'
0 1
root@ubuntu2004:~# awk 'BEGIN{i=0;print ++i,i}'
1 1
root@ubuntu2004:~# i=0;let j=i++;echo j=$j
j=0
root@ubuntu2004:~# i=0;let j=++i;echo j=$j
j=1
root@ubuntu2004:~# i=0;let j=i++;echo j=$j i=$i
j=0 i=1
root@ubuntu2004:~# i=0;let j=++i;echo j=$j i=$i
j=1 i=1

 

 

标签:ubuntu2004,passwd,etc,awk,使用,print,root,变量
来源: https://www.cnblogs.com/gxc888/p/16173073.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有