嵌入式作業系統基礎第八周總結

2021-09-29 02:20:56 字數 3709 閱讀 9730

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 微軟出品 不開源 計程車 麥...