? 1、顯示/etc/passwd文件中以bash結(jié)尾的行;
解釋:使用 grep
工具來搜索文件 /etc/passwd
中匹配模式 'bash$'
的行。bash$
是一個(gè)正則表達(dá)式,其中 $
表示行結(jié)尾。因此,'bash$'
匹配以 bash
結(jié)尾的行。
grep 'bash$' /etc/passwd
運(yùn)行結(jié)果:
? 2、找出"netstat ?-tan”命令的結(jié)果中,以‘LISTEN’后跟0或多個(gè)空白字符結(jié)尾的行
方法一:
netstat -tan | grep "LISTEN[[:space:]]*$"
?運(yùn)行結(jié)果:
方法二:
netstat -tan | grep 'LISTEN\s*$'
?運(yùn)行結(jié)果:
解釋:LISTEN\s*$'
使用正則表達(dá)式匹配以 "LISTEN" 結(jié)尾且后面跟著 0 或多個(gè)空白字符的行。其中 \s*
表示匹配 0 或多個(gè)空白字符,而 $
表示行結(jié)尾?
? 3、在/etc/fstab文件中不以#開頭的行的行首增加#號(hào)
命令:
sed -i '/^[^#]/ s/^/#/' /etc/fstab
?
解釋:
-
sed
是一個(gè)流式文本編輯器,用于對(duì)文件進(jìn)行處理和轉(zhuǎn)換。 -
-i
選項(xiàng)表示直接在原始文件上進(jìn)行修改。 -
/^[^#]/
是一個(gè)正則表達(dá)式模式,它匹配不以#
開頭的行。 -
s/^/#/
是sed
的替換命令,它將行首的開頭(^
)替換為#
。
執(zhí)行該命令后,sed
將遍歷 /etc/fstab
文件的每一行。對(duì)于不以 #
開頭的行,sed
將在行首添加 #
號(hào)。這樣就在這些行的行首增加了 #
號(hào)
? 4、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個(gè)空白字符的行的行首的#和空白字符
sed -i '/^#[[:blank:]]\+/ s/^#//' /etc/fstab
?解釋:
-
/^#[[:blank:]]\+/
是正則表達(dá)式模式,它匹配以#
開頭且后面至少跟一個(gè)空白字符的行。[[:blank:]]
表示空白字符(包括空格和制表符),+
表示匹配一個(gè)或多個(gè)空白字符。 -
s/^#//
是sed
的替換命令,它將行首的#
替換為空字符串,即刪除行首的#
號(hào)和空白字符。
5、統(tǒng)計(jì)出apache的access.log中訪問量最多的5個(gè)IP
?命令:文章來源:http://www.zghlxwxcb.cn/news/detail-463226.html
cat access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -5
解釋:文章來源地址http://www.zghlxwxcb.cn/news/detail-463226.html
-
cat access.log
用于將access.log
文件的內(nèi)容輸出到標(biāo)準(zhǔn)輸出。 -
cut -d ' ' -f 1
用于提取每行中的第一個(gè)字段,即 IP 地址。這里使用空格作為分隔符,-d ' '
表示使用空格作為分隔符,-f 1
表示提取第一個(gè)字段。 -
sort
用于對(duì) IP 地址進(jìn)行排序。 -
uniq -c
用于計(jì)算每個(gè) IP 地址出現(xiàn)的次數(shù),并在每行前面顯示計(jì)數(shù)。 -
sort -nr
用于按照計(jì)數(shù)值進(jìn)行逆向排序,即按照訪問量從高到低排序。 -
head -5
用于只顯示前五行,即訪問量最高的五個(gè) IP 地址。
到了這里,關(guān)于正則表達(dá)式和文本三劍客題型練習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!