1. 程式人生 > 實用技巧 >4月24日

4月24日

8.10 shell特殊符號cut擷取命令

一、 shell特殊符號

1* 任意個任意字元(這是一個萬用字元)

2? 任意一個字元

3# 註釋字元

4\ 脫義字元

5| 管道符

二、幾個和管道符有關的命令:

2.1 擷取某一個欄位的命令:cut 命令 (-d -f 一般一起使用)

-d :後面跟分隔字元,分隔字元要用單引號括起來

-f :後面接的是第幾個區塊

-c :後面接的是第幾個字元

-d 後面跟分隔字元,這裡使用冒號作為分割字元-f 1 就是擷取第一段-f1之間的空格可有可無。

-c 後面可以是1個數字n,也可以是一個區間n1-n2,還可以是多個數字n1,n2,n3

blob.png

cut 分割,-d 分隔符 -f

指定段號 -c 指定第幾個字元,

cat passwd這個檔案,head只檢視前兩行,cut -d擷取分割符號為':'-f 1 表示擷取第一段,1,2表示前兩段,1-3表示頭三段。

8.11 sort_wc_uniq命令

sort排序_wc統計行數_uniq刪除重複行

1.sort 排序,-n 以數字排序 , -r 反序 , -t 分隔符, -kn1/-kn1,n2(基本少很用-t)

-t 後面跟分割字元,作用跟cut -d選項一樣,擷取符號是什麼; -n表示使用純數字排序,字母及特殊符號表示為0 -r 表示反向排序; -u表示除去重複; -kn1,n2 表示由n1區間排序到n2區間,可以只寫-kn1

,即對n1欄位排序。

1.1 如圖用sort進行排序

blob.png

1.2 用純數字進行排序:sort -n 1.txt

blob.png

1.3用純數字進行反序:srot -nr 1.txt

blob.png

2.1 命令 : wc

用於統計文件的行數、字元數、詞數,常用的選項為:

-l :統計行數

-m :統計字元數

-w :統計詞數

blob.png

wc 不跟任何選項,直接跟文件,則會把行數、詞數、字元數依次輸出

3.1 命令 : uniq

去重複的行,常與sort排序命令一起使用。使用uniq 的前提是需要先給檔案排序,否則不管用

-c :統計重複的行數,並把行數寫在前面

blob.png

8.12 tee_tr_split命令

1. 命令 : tee ,選項 -a 追加

後跟檔名,類似與重定向

“>”, 但是比重定向多了一個功能,在把檔案寫入後面所跟的檔案中的同時,還顯示在螢幕上

1.1 2.txt內容去除重後寫入a.txt

blob.png

1.2 tee -a 追加內容

blob.png

2.tr 命令 替換字元,tr 'a' 'b',大小寫替換tr '[a-z]' '[A-Z]'

blob.png

3.split命令切割文件

常用選項:

-b :依據大小來分割文件,單位為byte

-l :依據行數來分割文件

3.1 切割文件a.txt 每個為100K

blob.png

3.2切割文件a.txt 每個為100K,檔案命名開頭為asd

blob.png

3.3 切割文件a.txt 每個切割文件為1000

blob.png

8.13 shell特殊符號下

1$ 變數字首,!$組合(最近使用過的命令),正則裡面表示行尾

blob.png

2分號。多條命令寫到一行,用分號分割

blob.png

3~ 使用者家目錄,後面正則表示式表示匹配符

4& 放到命令後面,會把命令丟到後臺

5> >> 2> 2>> &>

> :正確重定向,會把之前的檔案覆蓋掉。

>> :追加重定向,追加內容正確輸出。

2> :錯誤重定向

2>>:追加錯誤重定向

&> :表示正確與錯誤輸出重定向

6[ ] 指定字元中的一個,如[0-9],[a-zA-Z],[abc]

7|| && ,用於命令之間。

|| :表示或者的意思,當同時使用執行兩條命令時,如果第一條命令執行不成功,那就執行第二條命令,如果第一條命令執行成功,那就不執行第二條命令,示例如下:

blob.png

&&:表示並且的意思,當同時使用執行兩條命令時,如果前面命令執行成功才執行後面的命令,否則不執行。

示例如下:

blob.png

7.1 判斷一個目錄是否存在,如:

[ -d aminglinux ] || mkdir aminglinux

(如果amolinux目錄存在,就不執行後面的建立目錄命令;如果amolinux目錄不存在 ,就執行建立目錄的命令)

實驗:

blob.png

解釋:

[ -d aminglinux ]:判斷一個目錄是否存在。




轉載於:https://blog.51cto.com/404006045/2107393