一、shell下面直接處理awk命令
awk '' file
awk '/^(11+?)\1+$/ ' file //著名的判斷是否為素數的正則
上面兩個命令都是直接可以在shell下執行的命令,基本模式是 awk pattern file,就是說awk會一行一行的從file中讀取文字,然後判斷pattern是否滿足,如果滿足則執行action。
二、awk指令碼的基本結構
begin{} //awk的前奏,一般會在這裡初始化變數、讀取命令引數、設定分隔符
{} //awk的主體部分,這裡主要是一行一行的從文字檔案中讀取資料,執行命令
end{} //這是awk的收尾部分,這時awk已經從文字檔案中讀取完所有資料,這時可以執行一些對結果的統計啊之類的工作
awk主體部分的執行流程:
1.從文字檔案中讀取一行資料
2.更新awk內建變數,如$0,nr,nf等
3.依次執行主體部分的命令
4.若文字檔案中還有未讀取完的資料,繼續迴圈1-4的流程
在shell中執行awk指令碼的命令是: awk -f test.awk -v arg1=9 -v arg2=8 ... file
-f 指定指令碼檔案,每乙個-v指定乙個命令引數
三、awk的基本命令
i/o命令: print 這個是列印後換行 printf 這個列印後不換行 getline 從檔案中讀取一行資料
如awk '' file 列印file檔案的第一列
awk '' file 將file檔案的第二列列印為一行
getline 的命令格式為:
getline varable < file 這樣file的一行資料儲存入變數varable中
如果是getline < file 省略varable,則資料儲存到$0中
流程控制命令: if(...){} else{}, for(...){}, while(...){} 這個跟c差不多
四、awk的內建變數
argc 命令引數的個數
ar** 儲存命令引數的陣列
fnr 已經讀入的記錄數
fs 分割為記錄的分隔符
ofs 輸出時的分隔符
nf 當前行的記錄數
nr 已經讀入的行數
$0 記錄當前讀入的行,$1 $2 $3 ... 記錄分隔後的字段
五、awk指令碼呼叫shell命令
awk 'begin' file
六、awk應用
awk 'nr%2==1 ' file
linux文字編輯器awk
在以linux為核心的作業系統環境中,文字編輯器具有重要地位,其中關鍵原因在於涉及linux作業系統的配置均是以檔案形式存在,因而維護linux的正常執行特別是自定義環境配置時,必須用到文字編輯器修改配置檔案的內容。作為編輯檔案的主流編輯器,vim一直在linux系統中被奉為神器,誠然,vim編輯器...
shell文字編輯器 awk用法
awk 命令 執行語句 檔名 awk 命令 正則 檔名 f 指定分隔符。不寫就是以乙個或多個空格為分隔符。v var value 賦值乙個使用者定義變數,將外部變數傳遞給awkbegin語句塊 在awk開始從輸入流中讀取行之前被執行,這是乙個可選的語句塊,比如變數初始化 列印輸出 的表頭等語句通常可...
文字編輯框 調整文字編輯區域
在多行模式下的cedit類提供void cedit setrectnp lpcrect lprect 函式,此函式用來調整文字編輯的區域,用這個函式可以設定上下左右margins,而void setmargins uint nleft,uint nright 函式只能設定左右margins。crec...