博客 / 詳情

返回

shell工具

一、cut

cut工作是"剪",就是在文件中剪切數據用的,cut命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段輸出。

1、基本語法

cut [選項參數] filename // 默認分隔符是製表符
參數説明:
-f          列號,提取第幾列
-d          分隔符,按照指定分隔符分割列

aaa bbb
ccc ddd
eee fff

cut -d " " -f 1 test.txt

二、sed

sed 是一種流編輯器,它是一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱為"模式空間",接着sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,知道文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸出。

1、基本語法

sed [選項參數] 'command' filename
選項參數説明:
-e          直接在指令列模式上進行sed動作編輯

命令功能描述:
a           新增,a的後面可以接字符串,在下一行出現// 帶引號
d           刪除
s           查找並替換

aaa bbb
ccc ddd
eee fff

sed "2a ttt sss" test.txt  // 第二行下追加一行
aaa bbb
ccc ddd
ttt sss
eee fff

三、awk

awk 一個非常強大的文本分析工具,把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行分析處理。

1、基本語法

awk [選項參數] 'pattern1{action1} pattern2{action2}...' filename
pattern:表示awk在數據中查找的內容,就是匹配模式
action:查找到匹配內容時執行的一些列命令
選項參數説明:
-F          指定輸入文件折分隔符
-v          賦值一個用户定義變量

awk內置變量:
FILENAME          文件名
NR                已讀的記錄數
NF                瀏覽記錄的域的個數(切割後,列的個數)

// 搜索以root開頭的所有行,並輸出該行的第7列
awk -F : '/^root/{print $7}' /etc/passwd

四、sort

awk 將文件進行排序,並將排序結果標準輸出。

1、基本語法

sort(選項)(參數)

選項:
-n          依照數值大小排序
-r          以相反的順序排序
-t          設置排序時所用的分隔字符
-k          指定需要排序的列

參數:指定待排序的文件列表

sort -t : -nrk 2 test.sh // 分隔 以第二列排序
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.