linux脚本中awk是什么awk后面接的NR是什么意思 awk 'NR==1 {print $1} 这句shell语...
linux shell\u811a\u672cawk\u66ff\u6362\u4e2d\u7684NF\u8ddfNR\u7684\u610f\u4e49NF\u8868\u793a\u7b2c\u51e0\u4e2a\u5b57\u6bb5\uff0c\u6bcf\u4e2a\u5b57\u6bb5\u9ed8\u8ba4\u7528\u7a7a\u683c\u5206\u5f00\u3002
NF-3\u7684\u610f\u601d\u662f\u5012\u6570\u7b2c\u4e09\u4e2a\u5b57\u6bb5\uff0cssh2\u662f\u7b2c-0\u4e2a\u5b57\u6bb5\uff0c663951\u662f\u7b2c-1\u4e2a\u5b57\u6bb5....
192.168.0.78\u662f\u7b2c-3\u4e2a\u5b57\u6bb5\u3002
\u6253\u5370\u7b2c\u4e00\u884c\u7684\u7b2c\u4e00\u4e2a\u5b57\u6bb5\uff0c\u9ed8\u8ba4\u5206\u9694\u7b26\u4e3a \u7a7a\u683c\u6216\u5236\u8868\u7b26TAB \uff08\u90fd\u53ef\u4ee5\uff09\u3002
\u6e90\u6570\u636e\u53ef\u4ee5\u662f\u901a\u8fc7\u7ba1\u9053\u4f20\u9012\u8fc7\u6765\u7684\u591a\u884c\u5b57\u7b26\u4e32\uff0c\u4e5f\u53ef\u4ee5\u662f\u6587\u4ef6\u3002
\u4f8b\u5982\uff1a
echo -e "A B C\nD E F\nG H I" | awk 'NR==1 {print $1}'\u6216\u8005\uff1a
awk 'NR==1 {print $1}' file.txt
awk 'NR==n{print $0}' file
这条命令的作用就是打印 file 文件的第n行。
$@:表示所有脚本参数的内容
$#:表示返回所有脚本参数的个数。
示例:编写如下shell脚本,保存为test.sh
#!/bin/sh
echo
"number:$#"
echo
"argume:$@"
执行脚本:
./test.sh
first_arg
second_arg
说明:给脚本提供了两个参数,所以$#输出的结果是2,$@代表了参数的内容!
把第二行记录打印出来.
解释:
$ awk 'NR==2 {print $0}' filename
NR:记录行号
$0:这一行记录
例子:
$cat > test
aa bb cc
dd ee ff
gg hh ii
$>gawk 'NR==2 {print $0}' test
dd ee ff
绛旓細awk鏄竴涓己澶х殑鏂囨湰鍒嗘瀽宸ュ叿锛岀浉瀵逛簬grep鐨勬煡鎵撅紝sed鐨勭紪杈戯紝awk鍦ㄥ叾瀵规暟鎹垎鏋愬苟鐢熸垚鎶ュ憡鏃讹紝鏄惧緱灏や负寮哄ぇ銆傜畝鍗曟潵璇碼wk灏辨槸鎶婃枃浠堕愯鐨勮鍏ワ紝浠ョ┖鏍间负榛樿鍒嗛殧绗﹀皢姣忚鍒囩墖锛屽垏寮鐨勯儴鍒嗗啀杩涜鍚勭鍒嗘瀽澶勭悊銆俛wk鏈変笁涓笉鍚岀殑鐗堟湰锛歛wk銆乶awk鍜実awk锛屾湭浣滅壒鍒鏄庯紝涓鑸寚gawk锛実awk鏄痑wk鐨凣NU鐗堟湰銆備箣...
绛旓細awk鍛戒护鏄痩inux涓嬬殑涓涓枃浠剁鐞嗗懡浠锛岄氬父鏄敤浜庢枃鏈拰鏁版嵁杩涜澶勭悊鐨勭紪绋嬭瑷锛宎wk鍛戒护涓昏鏈変袱涓姛鑳斤紝鍏蜂綋浠嬬粛濡備笅锛1銆乤wk鍛戒护鍙互鍦╨inux/unix涓嬪鏂囨湰鍜屾暟鎹繘琛屽鐞嗭紱2銆乤wk鍛戒护鏀寔鐢ㄦ埛鑷畾涔夊嚱鏁板拰鍔ㄦ佹鍒欒〃杈惧紡銆傚弬鑰冭寖渚嬶細姣斿鎵撳嵃姣忎竴琛岀殑绗簩鍜岀涓変釜瀛楁锛屽叿浣撳懡浠や负锛歔root@linuxcool ~]#...
绛旓細AWK鏄竴涓紭鑹殑鏂囨湰澶勭悊宸ュ叿锛孡inux鍙奤nix鐜涓幇鏈夌殑鍔熻兘鏈寮哄ぇ鐨勬暟鎹鐞嗗紩鎿庝箣涓銆傝繖绉嶇紪绋嬪強鏁版嵁鎿嶄綔璇█锛堝叾鍚嶇О寰楄嚜浜庡畠鐨勫垱濮嬩汉闃垮皵浣涢浄寰仿疯壘渚佸郊寰椔锋俯浼牸鍜屽竷鑾辨仼路鏌灄姹夊姘忕殑棣栦釜瀛楁瘝锛夌殑鏈澶у姛鑳藉彇鍐充簬涓涓汉鎵鎷ユ湁鐨勭煡璇嗐俛wk缁忚繃鏀硅繘鐢熸垚鐨勬柊鐨勭増鏈琻awk,gawk锛岀幇鍦ㄩ粯璁inux绯荤粺涓嬫棩甯...
绛旓細awk鍛戒护鐨勫熀鏈牸寮廩root@localhost]#awk[閫夐」]'鑴氭湰鍛戒护'鏂囦欢鍚嶃俛wk鐨勫己澶т箣澶勫湪浜庤剼鏈懡浠わ紝瀹冪敱2閮ㄥ垎缁勬垚锛屽垎鍒负鍖归厤瑙勫垯鍜屾墽琛屽懡浠ゃ俛wk鐨勪富瑕佺壒鎬т箣涓鏄叾澶勭悊鏂囨湰鏂囦欢涓暟鎹殑鑳藉姏瀹冧細鑷姩缁欎竴琛屼腑鐨勬瘡涓暟鎹厓绱犲垎閰嶄竴涓彉閲忋
绛旓細NR==2灏辨槸瀵圭浜岃鎵ц鍚庨潰鐨勬搷浣滐紝涔熷氨鏄 {print $0}锛 鑰宲rint $0 鐨勬剰鎬濆氨鏄墦鍗板綋鍓嶈锛屼篃灏辨槸绗簩琛屻傛墍浠 awk 'NR==n{print $0}' file 杩欐潯鍛戒护鐨勪綔鐢ㄥ氨鏄墦鍗 file 鏂囦欢鐨勭n琛屻
绛旓細awk-fscriptfilevar=valuefile(s)閫夐」鍙傛暟璇存槑锛-Ffsor--field-separatorfs 鎸囧畾杈撳叆鏂囦欢鎶樺垎闅旂锛宖s鏄竴涓瓧绗︿覆鎴栬呮槸涓涓鍒欒〃杈惧紡锛屽-F:銆-vvar=valueor--asignvar=value 璧嬪间竴涓敤鎴峰畾涔夊彉閲忋-fscripfileor--filescriptfile 浠鑴氭湰鏂囦欢涓鍙朼wk鍛戒护銆-mfnnnand-mrnnn 瀵筺nn鍊艰缃唴鍦...
绛旓細Linux涓鐨awk鍛戒护鏄竴绉嶅己澶х殑鏂囨湰澶勭悊宸ュ叿锛屽畠閫氳繃瑙f瀽姣忎竴琛屾暟鎹紝灏嗗叾鍒嗗壊鎴愬涓瓧娈佃繘琛屾搷浣滐紝鐗瑰埆閫傚悎浜庡皬鍨嬫暟鎹殑澶勭悊銆俛wk鐨勪富瑕佸伐浣滄ā寮忔槸閫氳繃涓绯诲垪鏉′欢鍜屽姩浣滄潵绛涢夊拰鏍煎紡鍖栨暟鎹備娇鐢╝wk鐨勫熀鏈娉曟槸锛歛wk '鏉′欢绫诲瀷1{鍔ㄤ綔1}鏉′欢绫诲瀷2{鍔ㄤ綔2}...' filename銆備竴涓洿瑙傜殑搴旂敤瀹炰緥鏄紝濡傛灉浣犳兂...
绛旓細awk鏈変笁涓笉鍚岀殑鐗堟湰锛歛wk銆乶awk鍜実awk锛屽湪娌℃湁鍋氱壒娈婅鏃剁殑鏃跺欓粯璁ょ殑灏辨槸gawk锛実awk鏄awk鐨凣NU鐗堟湰銆傚叾涓璫ommand鏄湡姝g殑awk鍛戒护锛-F琛ㄧず鍩熺殑鍒嗛殧绗︼紝鏄釜鍙夐」銆侳ilename鏄瓑寰呭鐞嗙殑鏂囦欢 灏嗘墍鏈夌殑awk鍛戒护鍐欏叆鍒颁竴涓枃浠讹紝骞朵娇鐢ㄨ鏂囦欢鏈塜鏉冮檺锛岀劧鍚巃wk鍛戒护瑙i噴鍣ㄤ綔涓鑴氭湰鐨勯琛岋紝涔熷氨鏄鍙互鎶...
绛旓細Linux涓锛awk鏄涓娆惧己澶х殑鏂囨湰澶勭悊宸ュ叿锛屽畠鑳戒互鍚勭鏂瑰紡鎿嶄綔鏁版嵁銆傞鍏堬紝awk鐨勫熀鏈敤娉曞寘鎷寜棰勫畾涔夋牸寮忚緭鍑哄唴瀹癸紙濡俙awk '{print $1, $3}'`锛夛紝閫氳繃`awk 'NR==FNR{a[$1]=$0;next}{print a[$2]}' file1 file2`鍏宠仈涓や釜鏂囦欢锛屼互鍙婂埄鐢╜if-else`缁撴瀯杩涜鏉′欢鍒ゆ柇銆傚叾娆★紝awk杩樿兘甯姪鎴戜滑...
绛旓細awk鍛戒护鏄疉lfred Aho, Peter Weinberger, Brian Kernighan涓変綅浣滆呰仈鍚堝紑鍙戠殑锛岀敤浜Linux/Unix涓鐞嗘暟鎹拰浜х敓鎶ュ憡銆俛wk鍛戒护鍔熻兘鍗佸垎寮哄ぇ锛屽彲鏍规嵁闇瑕佹姄鍙栥佹埅鍙栨寚瀹氱殑鍒楁垨琛屻傞鍏堝湪/mnt鐩綍涓嬪垱寤虹ず渚嬫枃鏈枃浠秄1锛屽叾鍐呭濡備笅锛1 hello hello 2 data data 3 xyz abc 4 123 789 5 ftp 6 Apache 7 ...