谁能帮忙逐段解释下这个awk语句什么意思 请问下面关于linux awk的语句是什么意思呢

\u8c01\u5e2e\u6211\u89e3\u91ca\u4e0b\u8fd9\u9762\u8fd9\u4e2aawk\u6587\u4ef6\u6bcf\u884c\u5565\u610f\u601d\uff1f

1. \u57fa\u672c\u89e3\u91ca
^\u662f\u4ee5\u4ec0\u4e48\u4ec0\u4e48\u5f00\u5934\u7684\u884c
|\u662f\u6216\u7684\u610f\u601d, \u4ee5lease\u5f00\u5934\u6216\u4ee5 binding\u5f00\u5934..........
ORS \u662f\u6bcf\u884c\u4e4b\u95f4\u4ee5\t \u505a\u4e3a\u6bcf\u884c\u7684\u5206\u9694\u7b26. \u6ce8: \u7cfb\u7edf\u9ed8\u8ba4\u6bcf\u884c\u7684\u5206\u9694\u7b26\u4e3a\n,\u4e5f\u5c31\u662f\u56de\u8f66.
NF \u662f\u6bcf\u4e00\u884c\u4ee5\u7a7a\u683c\u5206\u5f00\u7684\u5b57\u6bb5\u6570. \u5982:
cat file
abc def #NF=2 \u5c31\u8fd9\u4e2a\u610f\u601d
abc def ghi #NF=3 \u53ef\u7528\u8fd9\u6761\u547d\u4ee4\u6d4b\u8bd5 awk '{print NF}'
for(i=2;i<=NF;i++) {print $i}; #\u4ece\u7b2c\u4e8c\u4e2a\u5b57\u6bb5\u5f00\u59cb\u5230\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u5206\u522b\u6253\u5370\u3002
$ \u8868\u793a\u8fd9}\u7ed3\u5c3e\u7684

2. \u9010\u884c\u89e3\u91ca
if(/^lease|^ binding|^ starts|^ ends| ^ cltt | ^ binding | ^ next |^ hardware/) { ORS="\t" ; for(i=2;i<=NF;i++) {print $i};}
\u89e3\u91ca\u4e3a
\u5339\u914d\u4ee5^lease\u6216^ binding ......\u5f00\u5934\uff0c\u5e76\u4e14\u4ee5\t\u4e3a\u8f93\u51fa\u57df\u540d\u5206\u9694\u7b26,\u5206\u522b\u6253\u5370\u6bcf\u4e00\u4e2a\u57df. \u5177\u4f53\u6548\u679c\u5c31\u6d4b\u8bd5\u5427

if(/^}$/) { ORS=" \n"; print "\n"}
\u4ee5}\u5f00\u5934\u5e76\u4ee5}\u7ed3\u5c3e\u7684\uff0c\u4ee5\n\u4e3a\u5206\u9694\u7b26, print \n \u6253\u5370\u4e00\u4e2a\u56de\u8f66\u7b26

info="it is a test" \u5c06it is a test\u8d4b\u7ed9\u53d8\u91cfinfo

tlen=split(info,tA," ") \u5c06info\u53d8\u91cf\uff0c\u4e5f\u5c31\u662f"it is a test" ,\u7528\u7a7a\u683c\u4f5c\u4e3a\u5206\u9694\u7b26\uff0c\u8d4b\u7ed9\u6570\u7ec4tA, \u90a3\u4e48tA\u5c31\u662f\u201cit" "is" "a" "test"\u8fd9\u56db\u4e2a\u5b57\u7b26\u4e32

for(k=1;k<=tlen;k++){print k,tA[k];} \u5faa\u73af\u6253\u5370\u51fa\u6570\u7ec4tA,\u7ed3\u679c\u662f\uff1a

1 it
2 is
3 a
4 test

-F:                 
    更改字段分隔符为 =
/\['$Section'\]/ :
    首先使用/正则表达式/   是匹配模式,表示只有这一行的字符与//内的正则表达式匹配了,
    才会去执行//匹配模式后面的{}内的操作。
    此处//内的内容是\['$Section'\],而因为[]符号是元字符(在正在表达式内有特殊含义,
    不仅仅是[]的字符字面意思),所以使用\来转义。最后含义就是匹配字符串['$Section']
    进一步分解'$Section'其实就是当前shell环境变量Setion的值,为什么要加'' ??
    大概是因为shell与awk交互的一系列原因,具体的我也不是很了解。
{a=1}: 
    自定义变量a赋值为1
前面两个合起来就是 如果匹配到字符串['$Section']变量a的值就是1
a==1 :
    条件表达式,值为真或假
&&   :
     逻辑且
$1~/'$Key'/: 
    $1是内置变量,表示使用=为分割符分割后的第一个数据字段
    此处的'$Key'与上面的'$Section'相同。
~:
    匹配操作符,允许将正则表达式限定在数据行中的特定数据字段。也就是后面的匹配模式
    只对$1(=分隔符分割后的第一个数据字段)进行匹配。
{print $2; exit} 打印由=分割符分割后的第二个数据字段,然后结束当前行的awk流处理。
    也就是如果匹配的所有条件就结束awk,不继续去处理后面的行。
 
 整个命令作用:在$Configfile文件中匹配到以=为分隔符的第一数据字段为当前shell环境
               变量值为$Key 且 当前行中含有数据字段为当前环境变量值为$Section的行,
               打印第二数据字段,然后退出。


从文件$Configfile获取第一个$Section的值

  • 璋佽兘甯繖閫愭瑙i噴涓嬭繖涓猘wk璇彞浠涔堟剰鎬
    绛旓細-F: 鏇存敼瀛楁鍒嗛殧绗︿负 =/\['$Section'\]/ : 棣栧厛浣跨敤/姝e垯琛ㄨ揪寮/ 鏄尮閰嶆ā寮忥紝琛ㄧず鍙湁杩欎竴琛岀殑瀛楃涓//鍐呯殑姝e垯琛ㄨ揪寮忓尮閰嶄簡锛 鎵嶄細鍘绘墽琛//鍖归厤妯″紡鍚庨潰鐨剓}鍐呯殑鎿嶄綔銆 姝ゅ//鍐呯殑鍐呭鏄痋['$Section'\]锛岃屽洜涓篬]绗﹀彿鏄厓瀛楃锛堝湪姝e湪琛ㄨ揪寮忓唴鏈夌壒娈婂惈涔夛紝 涓嶄粎浠呮槸[...
  • shell awk鍛戒护璇﹁В
    绛旓細awk涓璶ext璇彞浣跨敤锛氬湪寰幆閫愯鍖归厤锛屽鏋滈亣鍒皀ext锛屽氨浼氳烦杩囧綋鍓嶈锛岀洿鎺ュ拷鐣ヤ笅闈㈣鍙ャ傝岃繘琛屼笅涓琛屽尮閰嶃俷et璇彞涓鑸敤浜庡琛屽悎骞讹細awk 'NR%2==1{next}{print NR,$0;}' text.txt 璇存槑锛 褰撹褰曡鍙烽櫎浠2浣1锛屽氨璺宠繃褰撳墠琛屻備笅闈㈢殑print NR,$0涔熶笉浼氭墽琛屻備笅涓琛屽紑濮嬶紝绋嬪簭鏈夊紑濮嬪垽鏂璑R%2鍊笺...
  • awk if 璇彞
    绛旓細mx_222='echo 5 1 10 | awk '{ if(($1>$2)&&($1>$3)) { print "2" } else {print "0"} }''
  • 鍝綅澶т緺甯鎴瑙i噴涓涓 df -P | awk 'BEGIN{FS="[%, ]+"}$5~/[0-9...
    绛旓細澶ф鎰忔濇槸瀵规瘮鍑洪偅涓鐩樹娇鐢ㄧ巼鏈楂橈紝骞舵墦鍗板嚭鐧惧垎姣 df -P #浠OSIX 杞讳究鏍煎紡鏄剧ず鏂囦欢绯荤粺鐨勪俊鎭 awk 'BEGIN{FS="[%, ]+"} #浠%鎴栫┖鏍间负鍒嗛殧绗 閭d釜,鍚庤竟搴旇鏈変釜绌烘牸 5~/[0-9]/{if(i<$5){i=$5}} #鍦ㄧ5鍩熶腑鏌ユ壘鍖呭惈鏈夋暟瀛楃殑娈碉紝鍒ゆ柇鏄惁澶т簬i 澶т簬i鐨勫煎氨瀛樺叆i渚濇寰幆瀵规瘮...
  • linux awk 鍐呯疆鍑芥暟璇︾粏浠嬬粛
    绛旓細[chengmo@centos5 ~]$ awk 'BEGIN{srand();fr=int(100*rand());print fr;}' 41 浜屻佸瓧绗︿覆鍑芥暟鏄: 鍑芥暟 璇存槑 gsub( Ere, Repl, [ In ] ) 闄や簡姝e垯琛ㄨ揪寮忔墍鏈夊叿浣撳艰鏇夸唬杩鐐,瀹冨拰 sub 鍑芥暟瀹屽叏涓鏍峰湴鎵ц,銆 sub( Ere, Repl, [ In ] ) 鐢 Repl 鍙傛暟鎸囧畾鐨勫瓧绗︿覆鏇挎崲 In 鍙傛暟鎸囧畾鐨勫瓧绗︿覆...
  • 涓轰粈涔堢▼搴忓憳涓嶈兘鐢ㄤ腑鏂囨潵缂栫▼
    绛旓細杩欑灏嗛珮绾х▼搴忚璁¤瑷缂栧啓鐨勬簮绋嬪簭杞崲鍒版満鍣ㄧ洰鏍囩▼搴忕殑鏂瑰紡鏈変袱绉:瑙i噴鏂瑰紡鍜岀紪璇戞柟寮忋傝В閲婃柟寮忎笅,璁$畻鏈哄楂樼骇璇█涔﹀啓鐨勬簮绋嬪簭涓杈硅В閲婁竴杈规墽琛,涓嶈兘褰㈡垚鐩爣鏂囦欢鍜屾墽琛屾枃浠躲傜紪璇戞柟寮忎笅,棣栧厛閫氳繃涓涓搴斾簬鎵鐢ㄧ▼搴忚璁¤瑷鐨勭紪璇戠▼搴忓婧愮▼搴忚繘琛屽鐞,缁忚繃瀵规簮绋嬪簭鐨勮瘝娉曞垎鏋愩佽娉曞垎鏋愩佽鎰忓垎鏋愩佷唬鐮佺敓鎴愬拰浠g爜...
  • 涓浗閭g缂栫▼璇█鏈鍙楀叕鍙告杩
    绛旓細Perl 锛屼竴鑸绉颁负鈥滃疄鐢ㄦ姤琛ㄦ彁鍙栬瑷鈥濓紙Practical Extraction and Report Language锛夈備粬浜1987骞12鏈18鏃ュ彂琛ㄣ侾erl鍊熷彇浜咰銆乻ed銆awk銆乻hell ing浠ュ強寰堝鍏朵粬绋嬪簭璇█鐨勭壒鎬с傚叾涓渶閲嶈鐨勭壒鎬ф槸瀹冨唴閮ㄩ泦鎴愪簡姝e垯琛ㄨ揪寮忕殑鍔熻兘锛屼互鍙婂法澶х殑绗笁鏂逛唬鐮佸簱CPAN銆傜畝鑰岃█涔嬶紝Perl鍍廋涓鏍峰己澶э紝璞wk銆乻ed绛...
  • 瀹囧畽鐨勫敖澶存槸浠涔?
    绛旓細鍦ㄨタ鏂,瀹囧畽杩欎釜璇嶅湪鑻辫涓彨cosmos,鍦ㄤ縿璇腑鍙簅cMoc ,鍦ㄥ痉璇腑鍙玨osmos ,鍦ㄦ硶璇腑鍙玞osmos銆傚畠浠兘婧愯嚜甯岃厞璇殑魏o蟽渭o味,鍙ゅ笇鑵婁汉璁や负瀹囧畽鐨勫垱鐢熶箖鏄粠娴戞矊涓骇鐢熷嚭绉╁簭鏉,魏o蟽渭o味鍏跺師鎰忓氨鏄З搴忋備絾鍦ㄨ嫳璇腑鏇寸粡甯哥敤鏉ヨ〃绀衡滃畤瀹欌濈殑璇嶆槸universe銆傛璇嶄笌universitas鏈夊叧銆傚湪涓笘绾,浜轰滑鎶婃部鐫鍚屼竴鏂瑰悜...
  • 濡備綍鎵嶈兘瀛﹀ソlinux?
    绛旓細鍚岀悊瀛︿細浜唋inux鐨勫懡浠や箣鍚,閭d箞鍙互瀛︿範涓涓媠hell鐨勫熀鏈鍙,awk sed鐨勫涔,鐢╯hell瀹炵幇涓浜涚壒瀹氬姛鑳界殑鑴氭湰,姣斿鍙互閫氳繃cat /proc/cpuinfo鍔犱笂awk鍛戒护鏉ュ疄鐜板cpu鐩稿叧淇℃伅鐨勭粺璁$瓑 濡傛灉浣犲湪Linux涓婃槸涓涓皬鐧借鐪嬩笅闈㈢殑鍥炵瓟~ 鎯冲濂絃inux,鍏堥棶鑷繁鍑犱釜闂銆 1. 浣犲璁$畻鏈烘劅鍏磋叮鍚? 2. 涓轰粈涔堝涔燣inux(浠栬兘...
  • 姝e垯琛ㄨ揪寮
    绛旓細瀵归偅浜涚啛鎮夌敤Python鎴朖avascript鏉ュ疄鐜版鍒欒〃杈惧紡鐨勪汉鏉ヨ,杩娈典唬鐮佸緢骞冲父銆傚湪Python鍜孞avascript杩欎簺璇█涓,鎴栬呭叾浠栫殑璇█,杩欎簺姝e垯琛ㄨ揪寮忎竴鏃︽槑纭湴缂栬瘧杩囧悗,浣犳兂鐢ㄥ埌鍝噷閮藉彲浠ャ備笌Perl鐨勫崟姝ュ尮閰嶇浉姣,鐪嬭捣鏉ュ澶氬仛浜嗕簺宸ヤ綔,浣嗚繖骞朵笉寰堣垂浜嬨 find()鏂规硶,灏卞儚浣犳墍鎯宠薄鐨,鐢ㄦ潵鎼滅储涓庢鍒欒〃杈惧紡鐩稿尮閰嶇殑浠讳綍鐩爣瀛楃涓...
  • 扩展阅读:转换器 ... 那英《歌手》第十期 ... 龚琳娜《庭院深深》 ... 你不像她胡彦斌完整版 ... 煎熬mv原版李佳薇 ... 张韶涵《我的最爱》 ... 少年白马醉春风结局 ... 吴克群与陈语安已分手 ... 孙楠最震撼的演唱现场 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网