SHELL基本的文字處理命令(二)

2021-09-05 13:01:22 字數 2347 閱讀 7621

sed:stream editor :一次處理一行內容,處理時,把當前的行儲存在臨時緩衝區,處理完後,輸送到螢幕

sed [引數] '命令' file

p    ##顯示

d    ##刪除

a    ##新增

c    ##替換

i    ##插入

1.p:顯示

sed -n '/\:/p' /etc/fstab

sed -n '/^#/p' /etc/fstab

sed -n '/^#/!p' /etc/fstab

sed -n '2,6p' /etc/fstab

sed -n '2,6!p' /etc/fstab

2.d:刪除

sed '/^uuid/d' /etc/fstab

sed '/^#/d' /etc/fstab

sed '/^$/d' /etc/fstab

sed '1,4d' /etc/fstab

3.a:新增

sed '/hello/aworld' westos

sed 's/hello/hello world/g' westos

sed 's/hello/hello\nworld/g' westos

4.c:替換

sed '/hello/chello world' westos
5.i:插入

[root@server mnt]# sed '/hello/iworld\nwestos' westos

world

westos

hello

6.-i:改變原檔案內容

sed -i 's/westos/redhat/' passwd

sed -i 's/westos/redhat/g' passwd ##全域性替換 也可以這樣修改 sed 's/\//#/g' /etc/fstab

1.awk處理機制:根據模式一次從檔案中抽取一行文字,對這行文字進行切片(預設使用空白字元作為分隔符)

[root@server mnt]# cat test

this | is | a | file

$1 $2 $3 $4

awk '' test ##$0表示輸出一整行

awk '' test

awk '' test

awk '' test ##顯示兩個字段

awk -f ":" '' /etc/passwd ##指定分隔符

2.awk常用變數

awk '' /etc/passwd    ##輸出檔名,和當前操作的行號

awk -f: '' /etc/passwd ##輸出每次處理的行號,以及當前以":"為分隔符的字段個數

總結:awk '' /etc/passwd

3.begin{}:讀入第一行文字之前執行的語句,一般用來初始化操作

{}:逐行處理

end{}:處理完最後以行文字後執行,一般用來處理輸出結果

awk 'begin '

awk -f: 'begin end ' passwd ##檔案開頭加redhat,末尾加westos,列印行號和內容

awk -f: '/bash$/' /etc/passwd ##輸出以bash結尾的

awk -f: 'nr==3 ' /etc/passwd

awk -f: 'nr % 2 == 0 ' /etc/passwd ##偶數行

awk -f: 'nr >=3 && nr <=5 ' /etc/passwd

awk 'beginend' linux.txt ##統計文字總欄位個數

4.if單分支語句

awk -f: 'begin}end' /etc/passwd    ##統計登入shell為bash的使用者

5.if雙分支

awk -f: 'beginelse}end' /etc/passwd    ##統計uid小於等於500和大於500的使用者個
6.for迴圈

awk 'begin}'

shell文字處理

最於檔案的操作以前都是用高階程式語言來操作的。今天恰好需要將乙個目錄中的檔案資訊儲存到sqlite3資料庫中 我用linux中的工具和shell來作為自己畢業設計做原型開發 下面記錄一下這裡用到的部分知識,以作備忘。用ls命令來說明 1.關於shell中的管道和重定向問題。這個知識基礎,這裡不再說了...

shell 文字處理

最近優化指令碼,將幾套指令碼合併,比如,處理nand手機的指令碼和處理emmc手機的指令碼是不一樣的,這導致我們的指令碼有很多個版本。手機側只有busybox,所以不能使用功能強大的python來處理文字。花了半天時間,發現雖然語法比較怪異,但也能簡潔的完成任務。if e proc emmc the...

Shell的文字處理

1.grep定義 grep 命令是一種強大的文字搜尋工具,根據使用者指定的 模式 對目標文字進行匹配檢 查,列印匹配到的行 由正規表示式或者字元及基本文字字元所編寫的過濾條件 global search regular expression and print out the line 全面搜尋研究...