cut:cut的工作就是「剪」,具體的說就是在檔案中負責剪下資料用的。cut 命令從檔案的每一行剪下位元組、字元和字段並將這些位元組、字元和字段輸出。
基本語法:cut [選項引數] filename 說明:預設分隔符是製表符
選項引數說明:
選項引數
功能-f
列號,提取第幾列
-d分隔符,按照指定分隔符分割列
-c指定具體的字元
案例
(1)選取系統path變數值,第2個「:」開始後的所有路徑:
[hadoop101@liufeng datas]$ echo
$path
/usr/lib64/qt3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop101/bin
[hadoop101@liufeng datas]$ echo
$path
|cut -d: -f 2-
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop101/bin
(2)切割ifconfig 後列印的ip位址
[hadoop101@liufeng datas]$ ifconfig eth0 |
grep
"inet addr"
|cut -d: -f 2 |
cut -d" " -f1
192.168.1.102
sed:sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」,接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有改變,除非你使用重定向儲存輸出。
基本用法:sed [選項引數] 『command』 filename
選項引數說明
選項引數
功能-e
直接在指令列模式上進行sed的動作編輯。
-i直接編輯檔案
命令功能描述
命令功能描述
a新增,a的後面可以接字串,在下一行出現d刪除
s查詢並替換
案例
(0)資料準備
[hadoop101@liufeng datas]$ touch sed.txt
[hadoop101@liufeng datas]$ vim sed.txt
dong shen
guan zhen
wo wo
lai lai
le le
(1)將「mei nv」這個單詞插入到sed.txt第二行下,列印。
[hadoop101@liufeng datas]$ sed
'2a mei nv' sed.txt
dong shen
guan zhen
mei nv
wo wo
lai lai
le le
[hadoop101@liufeng datas]$ cat sed.txt
dong shen
guan zhen
wo wo
lai lai
le le
注意:檔案並沒有改變
(2)刪除sed.txt檔案所有包含wo的行
[hadoop101@liufeng datas]$ sed
'/wo/d' sed.txt
dong shen
guan zhen
lai lai
le le
(3)將sed.txt檔案中wo替換為ni
[hadoop101@liufeng datas]$ sed
's/wo/ni/g' sed.txt
dong shen
guan zhen
ni ni
lai lai
le le
注意:『g』表示global,全部替換
(4)將sed.txt檔案中的第二行刪除並將wo替換為ni
[hadoop101@liufeng datas]$ sed -e '2d' -e 's/wo/ni/g' sed.txt
dong shen
ni ni
lai lai
le le
awk:乙個強大的文字分析工具,把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行分析處理。
基本用法:
awk [選項引數] 『pattern1 pattern2…』 filename
pattern:表示awk在資料中查詢的內容,就是匹配模式
action:在找到匹配內容時所執行的一系列命令
選項引數說明
選項引數
功能-f
指定輸入檔案折分隔符
-v賦值乙個使用者定義變數
案例
(0)資料準備
[hadoop101@liufeng datas]$ sudo
cp /etc/passwd ./
(1)搜尋passwd檔案以root關鍵字開頭的所有行,並輸出該行的第7列。
[hadoop101@liufeng datas]$ awk -f: '/^root/'
passwd
/bin/bash
(2)搜尋passwd檔案以root關鍵字開頭的所有行,並輸出該行的第1列和第7列,中間以「,」號分割。
[hadoop101@liufeng datas]$ awk -f: '/^root/'
passwd
root,/bin/bash
注意:只有匹配了pattern的行才會執行action
(3)只顯示/etc/passwd的第一列和第七列,以逗號分割,且在所有行前面新增列名user,shell在最後一行新增"dahaige,/bin/zuishuai"。
[hadoop101@liufeng datas]$ awk -f :
'begin end'
passwd
user, shell
root,/bin/bash
bin,/sbin/nologin
。。。ityoiuxin,/bin/bash
fengge,/bin/zuishuai
注意:begin 在所有資料讀取行之前執行;end 在所有資料執行之後執行。
(4)將passwd檔案中的使用者id增加數值1並輸出
[hadoop101@liufeng datas]$ awk -v i=1 -f: ''
passwd12
344. awk的內建變數
表1-56
變數 說明
filename 檔名
nr 已讀的記錄數
nf 瀏覽記錄的域的個數(切割後,列的個數)
5. 案例實操
(1)統計passwd檔名,每行的行號,每行的列數
[hadoop101@liufeng datas]$ awk -f: ''
passwd
filename:passwd, linenumber:1,columns:7
filename:passwd, linenumber:2,columns:7
filename:passwd, linenumber:3,columns:7
(2)切割ip
[hadoop101@liufeng datas]$ ifconfig eth0 |
grep
"inet addr"
|awk -f: ''
|awk -f " "
'' 192.168.1.102
(3)查詢sed.txt中空行所在的行號
[hadoop101@liufeng datas]$ awk
'/^$/' sed.txt
5
sort:是在linux裡非常有用,它將檔案進行排序,並將排序結果標準輸出。
基本語法:
sort(選項)(引數)
選項引數說明
選項說明
-n依照數值的大小排序
-r以相反的順序來排序
-t設定排序時所用的分隔字元
-k指定需要排序的列
案例
(0)資料準備
[hadoop101@liufeng datas]$ touch sort.sh
[hadoop101@liufeng datas]$ vim sort.sh
bb:40:5.4
bd:20:4.2
xz:50:2.3
cls:10:3.5
ss:30:1.6
(1)按照「:」分割後的第三列倒序排序。
[hadoop101@liufeng datas]$ sort -t : -nrk 3 sort.sh
bb:40:5.4
bd:20:4.2
cls:10:3.5
xz:50:2.3
ss:30:1.6
shell高階特性 4
1 shell模組 shell指令碼中可以載入配置檔案或呼叫已經完成函式或指令碼。a 載入配置檔案 新建配置檔案config,插入以下 1 reboot mode true 在同一路徑下,新建檔案module.sh,插入以下 1 bin bash 2 可以簡寫為 config 3source con...
Shell四大工具
cut cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut 命令從檔案的每一行剪下位元組 字元和字段並將這些位元組 字元和字段輸出。1 基本用法 cut 選項引數 filename 說明 預設分隔符是製表符 2 選項引數說明 f 列號,提取第幾列 d 分隔符,按照指定分隔符分割列 c...
Linux shell 之Shell命令高階
寫在前面 案例 常用 歸類 解釋說明。by jim 監控程式 a.程序檢視 ps ef e表示系統上執行的所有程序,f用於擴充套件輸出一些有用的資訊列。ps efh h引數可以將程序組織為分層格式,可以顯示哪些流程是隨其他程序一起啟動的。ps help ps指令的幫助資訊 b.實時監控 top q退...