歡迎您光臨本站 註冊首頁

linux筆記(grep awk)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

第二章 變數和運算符

1、set  為本地變數

2readonly 變數 設置為只讀變數

readonly 變數不能unset

2.1.2 環境變數

Ø 環境變數用於所有用戶進程(經常稱了為進行).登錄進程稱為父進程.

Shell中執行的用戶進程均稱為子進程.不像本地變數(只用於現在的shelll)環境變數可用於所有子進程,這包括編輯器、腳本和應用.

Ø $HOME/.bash_profile (/etc/profile)

Ø Export

Ø Env

2.1.3 變數替換

$(Variable name)

顯示實際值

$(Variable name: value)

如果設置了name,則顯示毀value否則為空

$(Variable name:?value)

如果未設置name,則顯示用戶定義value

$(Variable name:-value)

如果未設置name,則顯示其值value

$(Variable name:=value)

如果未設置name,設置其值,並顯示

5.2基本元字符集及其含義

字元

含義

^

只匹配行首

$

只匹配行尾

*

匹配0個或多個此單字元

[]

只匹配[]內字元.可以是一個單字元,也可以是字元序列.可以使用-表示[]內字元序列範圍,如用[15]代替[12345]

\

只用來屏蔽一個元字元的特殊含義

.

只匹配任意單字元

Pattern\{n\}

只用來匹配前面pattern出現次數.n為次數.

Pattern\{n,\}

含義同上,但次數最少為n

Pattern\{n,m\}

含義同上,但pattern出現次數在nm之間

第五章

4626


5.13 grep介紹

Ø Grep

unixLINUX中使用最廣泛的命令之一

Ø 對文本文件進行模式查找

Ø Grep有三種變形

n Grep:標準grep命令

n Egrep:擴展

grep,支持基本及擴展的正則表達式

n Fgrep:快速grep

Ø Grep一般格式為:

n grep [選項]基本正則表達式[文件]

n 字元串參數最好採用雙引號括起來,一是以防被誤解為

shell命令,二是可以用來查找多個單片語成的字元串.

Grep命令選項

Ø -c 只輸出匹配行的計數

Ø -i 不區分大小寫(只適用於單字元)

Ø -h 查詢多文件時不顯示文件名

Ø -H 顯示文件名.

Ø -l 查詢多文件時只輸出包含匹配字元的文件名.

Ø -n 顯示匹配行及行號

Ø -s 不顯示不存在或無匹配文本的錯誤信息

Ø -v 顯示不包含匹配文本的所有行

grep 命令類名

等價的正則表達式

[[:upper:]]

[A-Z]

[[:alnum:]]

[0-9a-zA-Z]

[[:lower:]]

[a-z]

[[:space:]]

空格或tab

[[:digit:]]

[0-9]

[[:alpha:]]

[a-zA-Z]


5.14 awk介紹

Ø 可從文件或字元串中基於指定規則瀏覽和抽取信息

Ø 是一種自解釋的編程語言

Ø 三種方式調用awk

n 使用行方式: awk [-F filed-spearator] `command` input-file

n awk腳本: 所有awk命令插入一個文件,並使

awk程序可執行,然後用awk命令解釋器作為腳本的首行,以便通過鍵入腳本名稱來調用它.

n awk命令插入一個單獨文件

awk –f awk-script-file input-file

Ø awk 腳本由各種操作和模式組成

Ø 模式和動作

n

模式部分決定動作語句何時觸發及觸發事件.(BEGIN,END

n 動作對數據進行處理,放在大括弧{}內指明.(print

Ø 分割符、域和記錄

n awk執行時,其瀏覽域標記為$1,$2,….$n.這種方法稱為域標識.

$0為所有域.

n 注意執行時不要混淆符號 $ shell提示符 $ ,它們是不同的.

Ø 花樣百出

例:

awk –F “:” ‘{print $1 “ home dictionary is ” $6 }’ passwd

awk –F “:” ‘BEGIN {print “User\t\tHOme Dictionary\n------------------------------------”}

{print $1”\t\t”$6 } END{print “end of print”}’ passwd

ü awk中的特殊元字元: ,?

ü 匹配操作符:~,!~

ü cat score.txt | awk ‘$0 ~ /218.79.131.96/’

ü

awk ‘$0 ~ /218.79.131.96/’ score.txt

ü awk ‘{if($1==”218.79.131.96”) print $0}’ score.txt

ü man awk


[火星人 ] linux筆記(grep awk)已經有491次圍觀

http://coctec.com/docs/linux/show-post-50283.html