![image]()
linux文本處理命令
# sort 命令 可以把文件的內(nèi)容加以排序
格式是:
sort + [文件名]
'排序默是按照第一個(gè)字母排序的 而且是同類和同類之間排序 排序的大小是按照ASCII碼來(lái)的'
# sort的參數(shù)
sort -n + [文件名] # 依照數(shù)值的大小來(lái)進(jìn)行排序
sort -r + [文件名] # 反向排序
sort -k2 + [文件名] # 以第幾列進(jìn)行排序
sort -t' ' + [文件名] # 指定分割符 默認(rèn)是以空格作為分割符
# uniq 命令 用于去重 不過只能去重相鄰的 所以一般和sort命令一塊使用
格式為:
uniq + [文件名]
# uniq 參數(shù)
uniq -c + [文件名] # 在列旁邊顯示該行出現(xiàn)的次數(shù)
uniq -d + [文件名] # 僅顯示重復(fù)出現(xiàn)的內(nèi)容
uniq -u + [文件名] # 僅顯示出現(xiàn)過一次的內(nèi)容
# cut命令 用來(lái)顯示行中的指定部分 刪除文件中的指定字符
格式為:
cut -d '指定分割符' -f'指定內(nèi)容' + [文件名]
# cut 參數(shù)
-d # 指定字段的分隔符 默認(rèn)分割符為 'TAB'
-f # 顯示指定字段內(nèi)容
# tr命令 替換或刪除命令
格式:
cat + [文件名] | tr + [需要替換內(nèi)容] + [替換內(nèi)容]
'替換字符串是一一對(duì)應(yīng)提替換的'
# tr 參數(shù)
-d 刪除字符
格式 : cat + [文件名] | tr -d + [需要?jiǎng)h除內(nèi)容]
# wc命令 統(tǒng)計(jì)和計(jì)算數(shù)字
# wc 參數(shù)
wc -c + [文件名] # 統(tǒng)計(jì)文件中的字節(jié)數(shù)
wc -l + [文件名] # 統(tǒng)計(jì)文件的行數(shù)
wc -w + [文件名] # 統(tǒng)計(jì)文件中單詞的個(gè)數(shù) 單體是指連一塊的字符串 默認(rèn)是空白字符作為分隔符
![image]()
三劍客之sed命令
# sed是linux中流媒體編輯器
# 三劍客各自的功能
grep 是用來(lái)過濾文本
sed 是用來(lái)修改文本
awk 是用來(lái)處理文本
# sed的格式:
sed + [參數(shù)] + '處理規(guī)則' + [操作對(duì)象]
# sde 參數(shù)
-e 允許多項(xiàng)編輯 例: sed -e '1d' -e '3d' + [文件名]
-n 取消默認(rèn)輸出 就是把顯示給取消了
-i 就地編輯 就是把展示的內(nèi)容直接寫入文件中
-r 支持拓展正則 普通正則默認(rèn)支持
例: sed -r '/123/d' + [文件名]
-f 指定某個(gè)文件類寫入的正則規(guī)則 然后通過-f參數(shù)來(lái)操作某文件
例: sde -f + [指定的正則] + [需要操作的文件]
# sed 的編輯模式
d 刪除
p 打印
a 在當(dāng)前行后添加一行或者多行
例: sed '5a666' + [文件名] 在第五行之后添加666
c 用新的文本修改或者替換當(dāng)前行
例:sed '5c666' + [文件名] 把第五行內(nèi)容修改為666
i 單獨(dú)使用時(shí)在當(dāng)前行之前插入文本
例:sed '5i666' + [文件名] 把第5行插入666
r 在文件當(dāng)中讀內(nèi)容 病例區(qū)插入到指定行的后一行
例:sed '3r 1.txt' + 2.txt 代表把1.txt全部?jī)?nèi)容插入到2點(diǎn)txt的第四行
w 將指定行寫入文件 清空寫入文件 并且把指定文件內(nèi)容全部寫入到寫入文件中
例:sed '2w 1.txt' + 2.txt 將2.txt的內(nèi)容寫入到1.txt
y 將字符轉(zhuǎn)換成另一個(gè)字符
例:sed '2y/a/A/' 2.txt 把2.txt中的小寫a全部替換成大寫A
s 減字符串轉(zhuǎn)換成另一個(gè)字符串 s模式是放在正則的前面
例:sed 's/10/50/' 2.txt 把2.txt的11行替換成了個(gè)50 每行只會(huì)替換一次
g 全部執(zhí)行 配合s使用
例:sed 's/10/50/g' 2.txt 把2.txt的所有10都替換成個(gè)50 g本身是沒有替換功能的
i 和s模式配合使用時(shí) 忽略大小寫
例:sed 's/10/50/gi' 2.txt 把2.txt的所有10都替換成個(gè)50 并且忽略大小寫
# sde 定位
1.數(shù)字定位法 # 指定行號(hào)
例: sed '3d' + [文件名]
sed '2,3d' + [文件名] 代表定位2到3行
2.正則定位法
例:sed '/g/d' + [文件名]
sed '^/g/d' + [文件名] g開頭的都刪了
3.數(shù)字和正則定位法
例:sed '3,/^g/d' + [文件名] 第三行到g開頭的都刪除
4.正則正則定位法
例: sed '/^g/,/^j/d' + [文件名] g開頭的到j(luò)開頭的都刪除
![image]()
補(bǔ)充知識(shí)
正則匹配時(shí) & 就代表前面匹配的內(nèi)容
sed 's/.*/%&/g' 3.txt
代表把3.txt中的每一行都添加上%
![image]()