1,變量:幾個特殊需要注意的變量,其它自定義變量不做闡述。
1)$n:$0:該腳本名稱,$1....:代表第幾個參數;
2)$#:獲取所有參數個數,常用於循環;
3)$*,$@:代表命令行中所有參數。$*把所有參數看成一個整體,而$@把所有參數單獨看待,注意在for循環中使用時,加引號和不加引號的卻別($*和$@ 在不加引號的情況下是一致的結果;加了引號,$*則表示一個整體,$@則把參數分開);
4)$?:代表最后一行命令執行狀態,0代表命令正常執行,非0則代表命令執行不正確,具體是什么數字,可以自定義;
2,cut工具:該工具即為‘剪’的意思,就是用來剪切數據用的。cut命令可以實現從文件中的每一行剪切字符、字節、字段,並且輸出。
該工具有2個參數:-f(提取第幾列) ,-d(分割列的分隔符)
例如:有如下數據,切分出第一列的數據
vim cut.txt
dong shen
guan zhen
wo wo
lai lai
le le
cut -f 1 -d " " cut.txt
3,sed工具:是一個流編輯器,每次處理一行內容。
1)基本用法
sed [選項參數] ‘command’ filename
2)選項參數說明
選項參數 |
功能 |
-e |
直接在指令列模式上進行sed的動作編輯。 |
3)命令功能描述
命令 |
功能描述 |
a |
新增,a的后面可以接字串,在下一行出現 |
d |
刪除 |
s |
查找並替換 |
4)例子:
將“mei nv”這個單詞插入到sed.txt第二行下,打印
sed '2a mei nv' sed.txt
4,awk工具:一個強大的文本分析工具。
1)基本用法
awk [選項參數] ‘pattern1{action1} pattern2{action2}...’ filename
pattern:表示AWK在數據中查找的內容,就是匹配模式
action:在找到匹配內容時所執行的一系列命令
2)選項參數說明
選項參數 |
功能 |
-F |
指定輸入文件折分隔符 |
-v |
賦值一個用戶定義變量 |
3)例子:
只顯示以root開頭的/etc/passwd的第一列和第七列,以逗號分割,且在行前面添加列名"begin print"在最后一行添加"end print"。
awk -F: 'BEGIN{print "begin print"} /^root/ {print $1","$7} END{print "end print"}' /etc/passwd
5,sort工具:對文件行進行排序,並將排序結果標准輸出。
1) 基本語法
sort(選項)(參數)
選項 |
說明 |
-n |
依照數值的大小排序 |
-r |
以相反的順序來排序 |
-t |
設置排序時所用的分隔字符 |
-k |
指定需要排序的列 |
參數:指定待排序的文件列表
2)實例
vim sort.sh
bb:40:5.4
bd:20:4.2
xz:50:2.3
cls:10:3.5
ss:30:1.6
根據第三列倒序排序
sort -t: -nrk 3 sort.sh
awk -F: '/^root/{print $7}' passwd