Shell基礎(字元處理)

2021-09-28 22:00:09 字數 1779 閱讀 3558

cut 字段提取(提取列)

格式:cut

選項:-f 列號:提取第幾列

-d 分隔符:指定分隔符去分隔列

例:

cut -f 2,3 student.txt

提取student.txt的第2、3列

cat /etc/passwd | grep /bin/bash |grep -v root| cut -d 「:」 -f 1

提取passwd中的普通使用者的名字

cut的弊端:沒辦法處理不同空格數分隔的列,要用到awk

akw 擷取列

格式:awk 』條件1條件2…『 檔名

例:

df -h |awk 『』

輸入df -h的第1列第3列

sed

輕量級流編輯器,sed主要用來對資料進行選取、替換、刪除、新增。

格式:sed [選項] 』[動作]『 檔名

選項:-n:把經過sed命令處理的行輸出到螢幕

-e:允許對輸入資料應用多條sed命令編輯

-i:用sed的修改結果直接修改讀取資料的檔案,而不只是在螢幕輸出

動作:a\:追加,在當前行後新增一行或多行。新增多行時,除最後一行外,每行末尾用「\」代表資料未完結

c\:行替換,用c候面的字串替換原資料行,替換多行時,除最後一行外,每行末尾用「\」代表資料未完結

i\:插入,插入多行時,除最後一行外,每行末尾用「\」代表資料未完結

d\:刪除

p:列印

s:字串替換 格式為「行範圍s/舊字串/新字串/g」

例:

sed -n 「2p」 /etc/passwd

只輸出passwd的第二行

sed 「2,4d」 /etc/passwd

刪除passwd的2到4行,但是不對passwd做修改,只是將刪除之後的內容輸出到螢幕

printf

格式:print 『輸出型別輸出格式』 輸出內容

輸出型別:

%ns:輸出字串,n是數字指輸出n個字元

%ni:輸出整數,n是數字指輸出n個數字

%m.nf:輸出浮點數。m指整數字數,n為小數字數。如%8.2f代表共輸出8位數,其中2位小數字,6位整數字。

輸出格式:

\a: 警告音

\b:退格

\f:清除螢幕

\n:換行

\r:回車

\t:水平輸出退格鍵,即tab。

sort 排序

格式:sort [選項] 檔名

-f:忽略大小寫

-n:以數值型進行排序,預設使用字串型排序(即10<2)

-r:反向排序

-t:指定分隔符,預設分隔符為製表符\t

-k n[,m]:按照指定的字段範圍排序,從第n欄位開始,m欄位結束(預設行尾)

例:

sort -t 「:」 -k 3,3 /etc/passwd

指定分隔符:,用第三個字段排序。

wc 統計

格式:wc [選項] 檔名

選項:-l:統計行數

-w:統計單詞數

-m:統計字元數

Shell 字元處理命令

shell 字元處理命令 排序命令sort root hh sort 選項 檔名 選項 f 忽略大小寫 n 以數值型進行排序,預設使用字串型排序 r 反向排序 t 指定分隔符,預設是製表符 k n,m 按照指定的字段範圍排序。從第n欄位開始,m欄位結束 預設到結尾 例子 sort t k 3,3 e...

shell字串處理

一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...

shell 字串處理

一 號擷取,刪除左邊字元,保留右邊字元。echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.google.com test.htm 二 號擷取,刪除左邊字元,保留右邊字元。echo 表示從左邊開始刪除最後 最右邊 乙個 號及左...