運(yùn)維必須會(huì)的Linux三劍客,被稱為L(zhǎng)inux利器
Linux提供了許多命令行工具來(lái)幫助我們處理和分析文本數(shù)據(jù)。其中最著名的三個(gè)工具就是grep、sed和awk。它們被稱為L(zhǎng)inux三劍客,因?yàn)樗鼈冊(cè)谔幚砦谋緮?shù)據(jù)時(shí)非常強(qiáng)大和靈活。
我們先看看,幾個(gè)關(guān)于linux運(yùn)維的面試題,你就知道重要性。
我們開(kāi)始介紹用法:
grep—搜索指定的內(nèi)容
grep命令用于在文本文件中搜索指定的內(nèi)容,并返回匹配的行。以下是grep命令的10個(gè)用法舉例:
- 搜索包含指定關(guān)鍵詞的行:grep "keyword" file.txt
- 搜索不區(qū)分大小寫(xiě)的關(guān)鍵詞:grep -i "keyword" file.txt
- 反向搜索,返回不包含指定關(guān)鍵詞的行:grep -v "keyword" file.txt
- 統(tǒng)計(jì)匹配行的數(shù)量:grep -c "keyword" file.txt
- 顯示匹配行之前的內(nèi)容:grep -B 2 "keyword" file.txt
- 顯示匹配行之后的內(nèi)容:grep -A 2 "keyword" file.txt
- 顯示匹配行及其上下文的內(nèi)容:grep -C 2 "keyword" file.txt
- 僅顯示匹配的關(guān)鍵詞:grep -o "keyword" file.txt
- 遞歸搜索目錄及其子目錄下的文件:grep -r "keyword" directory
- 使用正則表達(dá)式進(jìn)行高級(jí)搜索:grep -E "pattern" file.txt
sed—流式編輯
sed命令用于對(duì)文本進(jìn)行流式編輯,可以進(jìn)行替換、刪除、插入等操作。以下是sed命令的10個(gè)用法舉例:
- 替換文本中的指定字符串:sed 's/old/new/' file.txt
- 替換文本中的所有匹配字符串:sed 's/old/new/g' file.txt
- 刪除匹配指定模式的行:sed '/pattern/d' file.txt
- 刪除空白行:sed '/^$/d' file.txt
- 在匹配行之前插入新行:sed '/pattern/i new line' file.txt
- 在匹配行之后插入新行:sed '/pattern/a new line' file.txt
- 僅打印匹配的行:sed -n '/pattern/p' file.txt
- 僅打印指定行范圍內(nèi)的內(nèi)容:sed -n '2,5p' file.txt
- 將文本中的所有字母轉(zhuǎn)為大寫(xiě):sed 's/[a-z]/\U&/g' file.txt
- 將文本中的所有字母轉(zhuǎn)為小寫(xiě):sed 's/[A-Z]/\L&/g' file.txt
awk—文本處理
awk命令是一種強(qiáng)大的文本處理工具,可以根據(jù)指定的規(guī)則從文本中提取信息并進(jìn)行處理。以下是awk命令的10個(gè)用法舉例:
- 打印指定列的內(nèi)容:awk '{print $1}' file.txt
- 根據(jù)指定的分隔符切割文本并打印指定列:awk -F',' '{print $2}' file.txt
- 根據(jù)指定條件篩選行并打印:awk '/pattern/{print}' file.txt
- 計(jì)算指定列的總和:awk '{sum += $1} END {print sum}' file.txt
- 根據(jù)指定條件進(jìn)行行和列的求和:awk '{rowsum+=$1; colsum+=$2} END {print rowsum, colsum}' file.txt
- 根據(jù)指定條件進(jìn)行行的分組并計(jì)數(shù):awk '{count[$1]++} END {for (item in count) print item, count[item]}' file.txt
- 根據(jù)指定條件進(jìn)行行的分組并求平均值:awk '{sum[$1]+=$2; count[$1]++} END {for (item in sum) print item, sum[item]/count[item]}' file.txt
- 格式化輸出:awk '{printf "%-10s %-5d\n", $1, $2}' file.txt
- 自定義變量并進(jìn)行計(jì)算:awk 'BEGIN {x=5; y=10; print x+y}'
- 執(zhí)行自定義函數(shù):awk 'function myfunc(x) {return x*2} {print myfunc($1)}' file.txt
以上是Linux三劍客(grep、sed和awk)的介紹以及每個(gè)命令的10個(gè)用法舉例。它們?cè)谖谋咎幚砗头治鲋蟹浅?shí)用,希望對(duì)你有所幫助!