shell的awk命令 shell中的awk工具執(zhí)行原理

本篇文章給大家談?wù)剆hell的awk命令,以及shell中的awk工具執(zhí)行原理對應(yīng)的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位...
本篇文章給大家談?wù)剆hell的awk命令,以及shell中的awk工具執(zhí)行原理對應(yīng)的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了您的問題,不要忘了收藏本站喔。
shell的awk中用if。else,怎么多條件嵌套
awk'{if($1==1)print"A"elseif($1==2)print"B"elseprint"C"}'#命名為1.sh執(zhí)行方法:echo"1"|sh1.sh寫成一行:echo"3"|awk'{if($1==1)print"A";elseif($1==2)print"B";elseprint"C"}'
awk 'NR==1 {print $1} 這句shell語句是什么意思
打印第一行的第一個字段,默認(rèn)分隔符為空格或制表符TAB(都可以)。
源數(shù)據(jù)可以是通過管道傳遞過來的多行字符串,也可以是文件。
例如:
echo-e"ABC\nDEF\nGHI"|awk'NR==1{print$1}'或者:
awk'NR==1{print$1}'file.txt
bashshell的優(yōu)缺點
一、優(yōu)點方面:
1.shell的語法和結(jié)構(gòu)比較簡單,易于掌握
2.學(xué)習(xí)和使用也比較方便,上手比較容易
3.常用命令也比較好記,不清楚的情況下,可以通過man命令迅速找到相關(guān)的說明
4.shell是解釋型語言,運行之前不需要編譯
5.文本處理方面,主要依賴于awk、sed這兩把尖刀,能夠方便快捷地處理相當(dāng)復(fù)雜的問題
6.程序開發(fā)的效率非常高,依賴于功能強大的命令可以迅速地完成開發(fā)任務(wù)
二、缺點方面:
1.弱類型語言,對變量定義的查檢不是很嚴(yán)格
2.效率上存在的劣勢:shell相當(dāng)于一個接口,大部分的功能全部靠外部程序來完成,如shell在調(diào)用awk、sed的進(jìn)程來處理文件時,需要產(chǎn)生一個新的進(jìn)程。
3.I/O性能不高:之前看過一篇文章介紹,shell的I/O性能比perl要差,我會進(jìn)一步做測試來驗證這個觀點是否正確。
4.一些細(xì)節(jié)上的不足:向awk傳入shell定義的變量時,表達(dá)式比較復(fù)雜,且對shell的變量是只能讀取而不能修改
/bin/awk-f是什么意思
Linux下腳本的第一行#!是指明本腳本使用哪個解釋器來執(zhí)行當(dāng)前腳本,從頭文件看出這個一個awk腳本,第一行的意思可以理解為使用/usr/bin/awk-f腳本名來執(zhí)行當(dāng)前腳本:比如腳本:test.awk的第一行是#!/usr/bin/awk-f那么執(zhí)行這個腳本的時候就會根據(jù)第一行去尋找解釋器,效果相當(dāng)于在shell下執(zhí)行/usr/bin/awk-ftest.akw這里的-f是awk命令的一個參數(shù),是從文件中讀取腳本執(zhí)行的意思.
shell如何獲取文件某一行的行號
cat-n文件名|grep'關(guān)鍵字'|awk'{print$1}'
shell如何篩選一個括號內(nèi)的字符
shell可以通過命令awk篩選一個括號內(nèi)的字符。
OK,關(guān)于shell的awk命令和shell中的awk工具執(zhí)行原理的內(nèi)容到此結(jié)束了,希望對大家有所幫助。
本文鏈接:http://xinin56.com/qianduan/3241.html