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