ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Linux awk ÄÚÖñäÁ¿Ê¹ÓýéÉÜ
2014-11-24 07:34:50 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºLinux awk ÄÚÖà ±äÁ¿ ʹÓà ½éÉÜ

awkÊǸöÓÅÐãÎı¾´¦Àí¹¤¾ß£¬¿ÉÒÔ˵ÊÇÒ»ÃųÌÐòÉè¼ÆÓïÑÔ¡£ÏÂÃæÊÇawkÄÚÖñäÁ¿¡£


Ò»¡¢ÄÚÖñäÁ¿±í




2¡¢ÊµÀý


1¡¢³£ÓòÙ×÷


[chengmo@localhost ~]$ awk '/^root/{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash


/^root/ ΪѡÔñ±í´ïʽ£¬$0´ú±íÊÇÖðÐÐ


2¡¢ÉèÖÃ×ֶηָô·ûºÅ(FSʹÓ÷½·¨£©


[chengmo@localhost ~]$ awk 'BEGIN{FS=":"}/^root/{print $1,$NF}' /etc/passwd
root /bin/bash


FSΪ×ֶηָô·û£¬¿ÉÒÔ×Ô¼ºÉèÖã¬Ä¬ÈÏÊǿոñ£¬ÒòΪpasswdÀïÃæÊÇ¡±:¡±·Ö¸ô£¬ËùÒÔÐèÒªÐÞ¸ÄĬÈÏ·Ö¸ô·û¡£NFÊÇ×Ö¶Î×ÜÊý£¬$0´ú±íµ±Ç°ÐмǼ£¬$1-$nÊǵ±Ç°ÐУ¬¸÷¸ö×ֶζÔÓ¦Öµ¡£


3¡¢¼Ç¼ÌõÊý(NR,FNRʹÓ÷½·¨)


[chengmo@localhost ~]$ awk 'BEGIN{FS=":"}{print NR,$1,$NF}' /etc/passwd
1 root /bin/bash
2 bin /sbin/nologin
3 daemon /sbin/nologin
4 adm /sbin/nologin
5 lp /sbin/nologin
6 sync /bin/sync
7 shutdown /sbin/shutdown
¡­¡­


NRµÃµ½µ±Ç°¼Ç¼ËùÔÚÐÐ


4¡¢ÉèÖÃÊä³ö×ֶηָô·û£¨OFSʹÓ÷½·¨)


[chengmo@localhost ~]$ awk 'BEGIN{FS=":";OFS="^^"}/^root/{print FNR,$1,$NF}' /etc/passwd
1^^root^^/bin/bash


OFSÉèÖÃĬÈÏ×ֶηָô·û


5¡¢ÉèÖÃÊä³öÐмǼ·Ö¸ô·û(ORSʹÓ÷½·¨£©


[chengmo@localhost ~]$ awk 'BEGIN{FS=":";ORS="^^"}{print FNR,$1,$NF}' /etc/passwd
1 root /bin/bash^^2 bin /sbin/nologin^^3 daemon /sbin/nologin^^4 adm /sbin/nologin^^5 lp /sbin/nologin


´ÓÉÏÃæ¿´£¬ORSĬÈÏÊÇ»»Ðзû£¬ÕâÀïÐÞ¸ÄΪ£º¡±^^¡±£¬ËùÓÐÐÐÖ®¼äÓá±^^¡±·Ö¸ôÁË¡£


6¡¢ÊäÈë²ÎÊý»ñÈ¡(ARGC ,ARGVʹÓã©


[chengmo@localhost ~]$ awk 'BEGIN{FS=":";print "ARGC="ARGC;for(k in ARGV) {print k"="ARGV[k]; }}' /etc/passwd
ARGC=2
0=awk
1=/etc/passwd


ARGCµÃµ½ËùÓÐÊäÈë²ÎÊý¸öÊý£¬ARGV»ñµÃÊäÈë²ÎÊýÄÚÈÝ£¬ÊÇÒ»¸öÊý×é¡£


7¡¢»ñµÃ´«ÈëµÄÎļþÃû(FILENAMEʹÓÃ)


[chengmo@localhost ~]$ awk 'BEGIN{FS=":";print FILENAME}{print FILENAME}' /etc/passwd


/etc/passwd


FILENAME,$0-$N,NF ²»ÄÜʹÓÃÔÚBEGINÖУ¬BEGINÖв»ÄÜ»ñµÃÈκÎÓëÎļþ¼Ç¼²Ù×÷µÄ±äÁ¿¡£


8¡¢»ñµÃlinux»·¾³±äÁ¿£¨ENVIRONʹÓã©


[chengmo@localhost ~]$ awk 'BEGIN{print ENVIRON["PATH"];}' /etc/passwd
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/lib/icecc/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/java/jdk1.5.0_17/bin:/usr/java/jdk1.5.0_17/jre/bin:/usr/local/mysql/bin:/home/web97/bin


ENVIRONÊÇ×ÓµäÐÍÊý×飬¿ÉÒÔͨ¹ý¶ÔÓ¦¼üÖµ»ñµÃËüµÄÖµ¡£


9¡¢Êä³öÊý¾Ý¸ñʽÉèÖãº(OFMTʹÓã©


[chengmo@localhost ~]$ awk 'BEGIN{OFMT="%.3f";print 2/3,123.11111111;}' /etc/passwd
0.667 123.111


OFMTĬÈÏÊä³ö¸ñʽÊÇ£º%.6g ±£ÁôÁùλСÊý£¬ÕâÀïÐÞ¸ÄOFMT»áÐÞ¸ÄĬÈÏÊý¾ÝÊä³ö¸ñʽ¡£


10¡¢°´¿í¶ÈÖ¸¶¨·Ö¸ô·û£¨FIELDWIDTHSʹÓã©


[chengmo@localhost ~]$ echo 20100117054932 | awk 'BEGIN{FIELDWIDTHS="4 2 2 2 2 3"}{print $1"-"$2"-"$3,$4":"$5":"$6}'
2010-01-17 05:49:32


FIELDWIDTHSÆä¸ñʽΪ¿Õ¸ñ·Ö¸ôµÄÒ»´®Êý×Ö£¬ÓÃÒԶԼǼ½øÐÐÓòµÄ·Ö¸ô£¬FIELDWIDTHS="4 2 2 2 2 2"¾Í±íʾ$1¿í¶ÈÊÇ4£¬$2ÊÇ2£¬$3ÊÇ2 .... ¡£Õâ¸öʱºò»áºöÂÔ£ºFS·Ö¸ô·û¡£


11¡¢RSTART RLENGTHʹÓÃ


[chengmo@localhost ~]$ awk 'BEGIN{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }'
11 11 4
[chengmo@localhost ~]$ awk 'BEGIN{start=match("this is a test",/^[a-z]+$/); print start, RSTART, RLENGTH }'
0 0 ¨C1


RSTART ±»Æ¥ÅäÕýÔò±í´ïʽÊ×λÖã¬RLENGTH Æ¥Åä×Ö·û³¤¶È£¬Ã»ÓÐÕÒµ½Îª-1.


ÒÔÉÏÊÇ£ºawkµÄһЩÄÚÖñäÁ¿Ê¹Óã¬Ï£ÍûÓÐʲôÎÊÌâ¿ÉÒÔÓëÎÒ½»Á÷¡£


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºLinux awkÊý×é²Ù×÷Ïêϸ½éÉÜ ÏÂһƪ£ºLinuxÄÚºË Íø¿¨ ºÍ jffs2 ÒÆÖ²

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)