做導(dǎo)航網(wǎng)站賺錢嗎搜索推廣公司
正則表達(dá)式
? ? ? ? 基礎(chǔ)正大表達(dá)式
? ? ? ? ? ? ? ? 查看特定字符 grep
grep-n 'the' test.txt
grep-in 'the' test.txt
? ? ? ? ? ? ? ? ? ? ? ? -n 顯示行號
? ? ? ? ? ? ? ? ? ? ? ? -i? 不區(qū)分大小寫
? ? ? ? ? ? ? ? ? ? ? ? -v 反轉(zhuǎn)查找
? ? ? ? ? ? ? ? ? ? ? ? [] :中括號里可以寫元素,內(nèi)容符合任意元素,就會過濾出來
? ? ? ? ? ? ? ? ? ? ? ? ^ :寫在中括號里,代表取反。以^開頭,后面的內(nèi)容,代表以此內(nèi)容開頭
? ? ? ? ? ? ? ? ? ? ? ? \:轉(zhuǎn)譯,失去特殊字符的含義,當(dāng)作普通字符使用
? ? ? ? ? ? ? ? ? ? ? ? . :匹配字符,可代替任意字符使用,除換行
? ? ? ? ? ? ? ? ? ? ? ? {} :
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {3} 前一個字符匹配3次
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {3,6} 前一個字符匹配3或6次
? ? ? ? ? ? ? ? ? ? ? ? *:前面的內(nèi)容匹配0次或多次
? ? ? ? 擴(kuò)展正則表達(dá)式
sed工具概述
????????????????文本處理工具,讀取文本內(nèi)容,根據(jù)指定的條件進(jìn)行處理,如刪除、替換、添加等
????????????????可在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本處理操作
????????????????被廣泛應(yīng)用于shell腳本,以完成自動化處理任務(wù)
????????????????sed依賴于正則表達(dá)式
????????工作原理
????????????????讀取 執(zhí)行 顯示
????????????????-n顯示處理后的內(nèi)容,p打印
????????????????????????sed -n 'p' test.txt
????????????????打印指定行,打印第幾行到第幾行
????????????????????????sed -n '1p' test.txt sed -n '3,5p' test.txt
????????????????進(jìn)行篩選打印
????????????????????????sed -n '/the/p' test.txt sed -n '/[0-9]$/p' test.txt //打印以數(shù)字結(jié)尾的內(nèi)容
????????????????刪除指定行
????????????????????????sed '3d' test.txt //只顯示刪除完后的內(nèi)容但不會刪除源文件 sed '3,5d' test.txt //刪除第幾行到第幾行 sed -i '3d' test.txt //沒有回顯直接進(jìn)行源文件刪除 sed -i '^$' test.txt //刪除空格
????????????????替換內(nèi)容
????????????????????????sed -i 's/the/THE/' test.txt //把小寫的the替換為THE,只替換每行開頭符合條件的 sed 's/a/A/g' test.txt //-g代表全局修改 sed 's/^/#/g' test.txt //開頭進(jìn)行批量注釋 sed 's/$/#/g' test.txt //結(jié)尾進(jìn)行批量注釋 sed '/^[a-z]/s/^/#/g' test.txt //在所有小寫字母開頭進(jìn)行注解
awk工具介紹
功能強(qiáng)的編輯工具
內(nèi)置變量
FS:指定每行文本的字段分隔符,缺省為空格或制表位
NF:當(dāng)前處理的行的字段個數(shù)
NR:當(dāng)前處理的行的行號
$0:當(dāng)前處理行的整行內(nèi)容
$n:當(dāng)前處理行的第n個字段
打印每行的第6個字段,并且去掉%跟開頭的第一行
df -Th | awk '{print $6}' | awk -F '%' 'NR!=1 {print $1}' 0 0 2 0 3 1 14 0
打印第六列,第七列并去掉開頭, 去掉百分號,判斷$1>10 就展示對應(yīng)的$2
df -Th | awk 'NR!=1{print $6,$7}' | awk -F '%' '$1 >10 {print $2}' //$1指的是第一部分過濾后的$6, $2指的是第一部分過濾后的$7
統(tǒng)計以root開頭的內(nèi)容有幾行
awk '/^root/{print | "wc -l"}' /etc/passwd
排序以a-z的順序進(jìn)行排序
sort 文件名