1.文字處理三劍客
grep awk sed
一、grep
grep命令的基礎使用
grep全稱:global regular expression and print #全域性正規表示式搜尋然後列印
cat /tmp/jsetc | grep 「hangzhou」 #包含hangzhou的會整行列印
grep 『jsetc』 /tmp/jsetc
alias grep=『grep --color=auto』 #針對grep到的會有顏色
常用普通正規表示式,用某種約定好的符號去表示某個含義
. 任意乙個字元
*前面乙個字元出現0次或者多次,跟shell萬用字元要區分
cat /tmp/jsetc |grep 『jsetc.』
[abc] 中括號內的任意乙個字元
[^abc] 非中括號內的任意字元
cat /tmp/jsetc | grep 『[123]』
cat /tmp/jsetc |grep 『jsetc[^12]』
[0-9] 數字
[a-z] 小寫字母
[a-z] 大寫字母
[a-za-z] 所有字母
[a-za-z0-9] 所有字母+數字
[^0-9] 非數字
cat /tmp/jsetc |grep 『jsetc[0-9]』
cat /tmp/jsetc |grep 『[a-z]』
[[:alpha:]] 字母
[[:lower:]] 小寫字母
[[:upper:]] 大寫字母
[[:digit:]] 數字
[[:alnum:]] 字母加數字
[[:space:]] 任意空白
[[:punct:]] 特殊字元
[1] 非大小寫字母
cat /tmp/jsetc|grep 『[[:upper:]]』
cat /tmp/jsetc |grep 『3[[:space:]]』
^xx 以什麼開頭的
xx$ 以什麼結尾的
cat /tmp/jsetc |grep 『^#』
cat /tmp/jsetc |grep 『gkatex parse error: expected group after '^' at position 25: …p/jsetc |grep '^̲』 #直接回車,乙個字元都沒有
正則字元當成普通字元使用\,加反斜槓
cat /tmp/jsetc|grep 『.』
二、awk
awk的begin、end
begin{}大括號裡: 只執行一次,在文字處理開始前執行
{}大括號裡: 針對每一行進行處理
end{}大括號裡: 只執行一次,在文字處理結束後執行
舉例說明
cat /tmp/jsetc |awk 『beginend』
begin可以用來做浮點數運算
awk 『begin』
awk使用-f指定分隔符
預設分隔符是以多個空白字元作為分隔:空格、tab
-f引數可指定分隔符,後面跟正規表示式,支援擴充套件正則
cat /tmp/jsetc |awk -f』:』 『』
awk多個單字元分隔
cat /tmp/jsetc |awk -f』[:;]』 『』
cat /tmp/jsetc |awk -f』: |;』 『』
awk支援多字元分隔
cat /tmp/jsetc |awk -f 『:+|;』 『』
awk傳參
cat /tmp/jsetc |awk -v age=30 『$2>age』
cat /tmp/jsetc |awk -v age1=20 -v age2=34 『$2>age1 && $2awk的複雜過濾
cat /tmp/jsetc |awk '$3==「hangzhou」 || $3 == 「shenzhen」 』
三、sed
sed說明
vim可編輯文字,shell指令碼中無法使用vim
sed命令可對文字進行更改、刪除、新增、列印,可以直接修改文字檔案
sed語法
sed 『過濾+動作』 檔案路徑
sed過濾
預設無過濾,每一行都處理
/^port/ #正則過濾port
2,$ #指定行數,n代表第n行,$代表最後一行
/permitrootlogin/,/listenaddress/ #包含permitrootlogin的行開始,包含listenaddress的行結束
sed動作
p 列印動作
a 在行下面新增
i 在行上面新增
d 刪除
s/str1/str2/g 全域性查詢替換,str1替換成st2
s/str1/str2/ 查詢替換,每行第一次出現的替換
sed列印動作,跟-n結合使用
cat /tmp/jsetc.txt | sed -n 『/^port/p』
cat /tmp/jsetc.txt | sed -r -n 『/^port+/p』 #sed預設不支援擴充套件正則,sed -r
cat /tmp/jsetc.txt |sed -n 『3,$p』
cat /tmp/jsetc.txt |sed -n 『/permitrootlogin/,/sed/p』
sed新增文字
cat /tmp/jsetc.txt | sed 『a jsetc』 #行後增加
cat /tmp/jsetc.txt | sed 『i jsetc』 #行前增加
cat /tmp/jsetc.txt | sed 『a \ jsetc』 #需要增加空格,使用反斜槓
cat /tmp/jsetc.txt|sed 『/sedsedsed/a \ jsetc add』 #過濾加動作
sed刪除
cat /tmp/jsetc.txt |sed 『/^port/d』 #過濾後刪除
2.find
find簡單介紹
find命令用來搜尋指定檔案
搜尋到指定檔案後可執行某些動作,例如rm操作
find語法
find 目錄 選項 動作
find選項說明
選項可按檔案型別、更改時間、名字等進行查詢
無選項預設全查詢
find動作說明
動作預設print,輸出查詢到的檔案路徑
動作可以自定義
根據檔案型別查詢-type
f 普通檔案 file
d 目錄 directory
l 鏈結檔案
b 塊裝置檔案
c 字元裝置檔案
p 管道檔案
find /tmp/jsetc -type f
find /tmp/jsetc -type l
find根據檔案名字查詢
find /tmp/jsetc -name 「file_9」 #只支援萬用字元
根據檔案的使用者、使用者組來查詢
find /tmp/jsetc -type f -user nobody
find /tmp/jsetc -type f -group nobody
find反向查詢
find /tmp/jsetc/ -type f ! -user nobody
find命令幫助
find --help
:alpha: ↩︎
《嵌入式系統程式設計》第八周學習總結
1.osi 模型和 tcp ip 參考模型對應關係 2.tcp 1 三次握手協議。tcp 對話通過三次握手來進行初始化。三次握手的目的是使資料段的傳送和接收同步,告訴其他主機其一 次可接收的資料量,並建立虛連線。2 三次握手 初始化主機通過乙個同步標誌置位的資料段發出會話請求。請求主機再回送乙個資料...
嵌入式作業系統基礎第四周總結
偵錯程式 gdb 三大特點 啟動被除錯的程式 設定斷點 單步執行 檢視變數的值 除錯步驟 gcc g sum.c o sum gdb sum 操作 quit退出gdb list顯示 檢視源 gdb 可執行檔案 tui layout split c語言和組合語言同時看,每行 對應彙編 layout a...
嵌入式作業系統基礎知識
一 嵌入式作業系統?標準 可移植 x86,arm,dsp,powerpc 可以執行在不同cpu體系結構上的機器 錯誤 嵌入式作業系統 開源 嵌入式作業系統 vxworks 美國太空飛行員 航空 軍事 工業 實時性 在規定時間完成規定的動作 缺點 不開源 付費 wince 微軟出品 不開源 計程車 麥...