shell文字操作

2022-07-13 09:12:08 字數 2720 閱讀 7271

一、find查詢命令的使用

1、find . -name "*.txt"

在當前目錄下,查詢以txt結尾的檔案

2、find . -name "[a-z]"

在當前目錄下,查詢所有以小寫字母開頭的檔案

3、find /etc -name "host*"

在etc目錄下,查詢以host開頭的檔案

4、find . -perm 755

在當前目錄下,查詢屬性為755的檔案

5、find . -user root

在當前目錄下,查詢屬主為root的檔案

6、find . -mtime -5

在當前目錄下,查詢更改時間在5天之內的檔案

7、find . -mtime +3

在當前目錄下,查詢更改時間在3天之前的檔案

8、find . -type d

在當前目錄下,查詢型別為d的目錄

9、find . -type l

在當前目錄下,查詢型別為l的檔案

10、find . -size +1000000c

在當前目錄下,查詢檔案大小在1m以上的檔案

11、find . -prem 755 | xargs chmod 770

在當前目錄下,找到檔案屬性為755的,然後將其許可權設為770

12、find . -type f | xargs ls -l

在當前目錄下,查詢出所有的檔案,並且顯示詳細資訊

二、正規表示式

1、^linux

以linux開頭的行

2、$php

以php結尾的行

3、.匹配任意個字元

4、.+

匹配任意多個字元

5、.*

匹配0個或多個字元

6、[0-9a-z]

匹配裡的任意乙個字元

7、(linux)+

匹配出現多次linux單詞的行

8、(linux)

匹配出現2次以上linux單詞的行

9、\只用來遮蔽乙個元字元的特殊含義

三、grep搜尋命令

1、grep "qq" *

在所有檔案中查詢含有qq的檔案

2、grep -c "file" a 

在a檔案裡查詢有多少行匹配到file

3、grep -n "file" a

在a檔案裡有多少行匹配匹配到file,顯示行號和內容

4、grep -i "file" a

在a檔案中查詢file,並不區分大小寫

5、grep -v "file" a

在a檔案裡查詢除了file的行

6、grep -e "2004:22:5[0-9]" a

在a檔案中,查詢2004:22:50-2004:22:59之間的行

7、grep -e "^[^210]"

在a檔案裡查詢不是以1,2,0開頭的行

8、grep -e "h*q" a

在a檔案中查詢0個或多個h和q的行

9、grep -e "[5-8][6-9][3-0]" a

在a檔案中查詢大於563,小於890的行

10、grep -e "4" a

在a檔案中查詢包含兩個4的行

11、grep -e "4" a

在a檔案中查詢包含大於等於2,小於等於4的行

12、grep -e "4" a

在a檔案中查詢包含兩個以上4的行

13、grep -e "^$" a 

在a檔案中查詢空白行

14、grep "?" a

在a檔案在查詢包含?的行

15、grep -e "^d" a

在a檔案中查詢以d開頭的行

16、grep -e "^[^d]" a

在a檔案中查詢不是以d開頭的行

四、awk程式設計使用

1、awk "" file

列出file檔案的每一列

2、awk '' file

列出file檔案的第一列和第二列

3、cat file | awk '$0!~/192.168.10.2/' | grep "php" |wc -l

~表示匹配到192.168.10.2的ip位址的統計,!~表示不匹配

五、sed行定位的使用

1、sed -n '2'p file

只列印第二行,不列印其他行

2、sed -n '1,4'p file

列印從第一行到第四行

3、sed -n '/los/'p file

列印匹配到los的行

4、sed -n '4,/los/'p file

列印從第四行到匹配到los的所有行

5、sed '1,2'd file

列印除了第一行和第二行

六、uniq唯一性的使用

1、uniq -c file

列印緊挨著的重複行的次數

2、uniq -d file 

只列印重複行

七、sort排序使用

1、sort file

把檔案裡的內容按照字母的公升序排序

2、sort -r file 

把檔案裡的內容按照字母的降序排序

3、cat file|sort -t: -k1 -r

以:分割後的第一列降序排序

八、split檔案分割的使用

1、split -2 file spt

生成sptaa sptab等多個檔案

把file檔案每兩行分割為乙個檔案,檔名的字首為spt

shell 文字過濾

今天閒著沒事,把以前寫的shell再拿出來看好多都忘記了,於是自己用看了一邊資料 表是單個字元 一行的開始 d以開頭的 1 第三個為1的字元 字元要放在匹配的字元前面 一行的末尾 表示空行 匹配一行乙個字元的 字元要放在匹配的字元後面 匹配任意個字元 包括0個字元 可以遮蔽乙個特殊的字元 pas 這...

Shell文字過濾

元字元 只匹配行首,如 d匹配drwxr x x 只匹配行尾,如trouble 匹配以trouble結尾的所有字元 匹配空行 匹配0個或多個 匹配字元或字串行,中間可以使用 來進行分割,如 1 5 匹配12345,0 9 匹配0到9,a z a za z a za z0 9 等 遮蔽元字元的特殊含義...

shell讀取文字

for迴圈和while迴圈按行讀取 示例 bin bash 適用於工作日誌文字中某特殊列值處理 awk data.txt mydata.txt 取第三列的值儲存 len cat data.txt wc l 文字行數計算 i 1 while i len 1 dosed n p mydata.txt i...