Shell——常用工具(cut、sed、awk、sort)
文章目錄
- 一、cut
- 1.基本用法
- 2.示例演示
- 二、sed
- 1.基本用法
- 2.示例演示
- 三、awk
- 1.基本用法
- 2.示例演示
- 四、sort
- 1.基本用法
- 2.示例演示
一、cut
1.基本用法
cut的工作就是“剪”,具體的說就是在文件中負責剪切數據用的。cut 命令從文件的每一行剪切字節、字符和字段并將這些字節、字符和字段輸出。
cut [選項參數] filename
說明:默認分隔符是制表符
| -f | 列號,提取第幾列 |
| -d | 分隔符,按照指定分隔符分割列 |
2.示例演示
二、sed
1.基本用法
sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。
sed [選項參數] ‘command’ filename
| -e | 直接在指令列模式上進行sed的動作編輯 |
| a | 新增,a的后面可以接字符串,在下一行出現 |
| d | 刪除 |
| s | 查找并替換 |
2.示例演示
看一下sed.txt文檔內容
(1)刪除文檔中包含mz的行
(2)在第1行添加“mz xiaohua”
(3)將"xiaohua"全部替換為"huaxiaowei"
(4)將所有的"xiaohua"都替換成"huasiwei",并且刪除"mili"
三、awk
1.基本用法
一個強大的文本分析工具,把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行分析處理。
awk [選項參數] ‘pattern1{action1} pattern2{action2}…’ filename
pattern:表示AWK在數據中查找的內容,就是匹配模式
action:在找到匹配內容時所執行的一系列命令
只有匹配了pattern的行才會執行action
| -F | 指定輸入文件折分隔符 |
| -v | 賦值一個用戶定義變量 |
內置變量:
變量 說明
FILENAME 文件名
NR 已讀的記錄數
NF 瀏覽記錄的域的個數(切割后,列的個數)
| FILENAME | 文件名 |
| NR | 已讀的記錄數 |
| NF | 瀏覽記錄的域的個數(切割后,列的個數) |
2.示例演示
注:已經將passwd文件拷貝到當前路徑
(1)搜索passwd文件以root關鍵字開頭的所有行,并輸出該行的第7列
下面是passwd的部分原內容:
下圖執行搜索語句:
(2)搜索passwd文件以root關鍵字開頭的所有行,并輸出該行的第1列和第7列,中間以“?”號分割。
(3)搜索passwd文件以root關鍵字開頭的所有行,并輸出該行的第1列和第7列,中間以“,”號分割,且在所有行前面添加"xiaomeng,xiaohua"在最后一行加 “mz,hsw”
四、sort
1.基本用法
sort命令是在Linux里非常有用,它將文件進行排序,并將排序結果標準輸出。
sort(選項)(參數)
| -n | 依照數值的大小排序 |
| -r | 以相反的順序來排序 |
| -t | 設置排序時所用的分隔字符 |
| -k | 指定需要排序的列 |
2.示例演示
如下圖,將sort.txt中的內容,每行按照以‘:’為分隔符的第二段大小從大到小排列:
總結
以上是生活随笔為你收集整理的Shell——常用工具(cut、sed、awk、sort)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell——read读取控制台输入和函
- 下一篇: C++四种类型强制转换——const_c