linux文本處理三劍客:
grep ==擅長過濾,把想要的或者不想要的分離開。linux三劍客 老三 -A: 除了顯示匹配的一行之外,并顯示該行之前的num行;-B:除了顯示匹配的一行之外,并顯示該行之后的num行;-C:除了顯示匹配的一行之外,并顯示該行之前后各num行
sed==擅長取行、替換。三劍客老二 ①過濾:sed -n’/過濾的內容/處理的命令’ 文件,-n 取消sed的默認輸出。-i:改變文件內容。其中處理的命令:p:print打印,d:delete刪除。例子:sed ‘/oldboy/d’ test.txt;sed -n’/oldboy/p’ test.txt sed替換:sed -i ‘s#oldboy#oldgirl#g’a.txt s常說的查找并替換,用一個字符串替換成另一個 ;g與s聯合使用時,表示對當前行全局匹配替換(與下一個g意義不同) -i 修改文件內容 , #是分隔符,可以用、@等替換
awk==三劍客老大。一門語言,過濾內容(擅長取列) awk -F”分隔符號“‘{print $1}’ 文件 <==$第一列,$2第二列,$NF最后一列$(FN-1)倒數第二列例:①[root@TRY1 ~]# awk ‘{print $1}’ awk.txt ② awk ‘{if(NR<31 && NR>19) printf $1″\n”}’ test.txt 輸出打印20-30的第一列;NR代表行號,&&(and)并且 \n回車換行
正則表達式及文本處理練習題:
顯示/etc/meminfo文件中以大小s開頭的行
grep ^[sS] /proc/meminfo
顯示用戶rpc默認的shell程序。
grep “^rpc\>” /etc/passwd | cut -d : -f7
找出/etc/passwd/中的兩位或三位數。
grep -o “\<[0-9]\{2,3\}\>” /etc/passwd
利用df和grep,取出磁盤各分區利用率,并從大到小排序
df |grep ^/dev/sd |grep -o “\b[[:digit:]]\{1,3\}\b%”|sort -rn
顯示三個用戶root、mage、wang的UID和默認shell。
grep -e “^root\>” -e “^mage\>” -e “^wang\>” /etc/passwd | cut -d: -f3,7
egrep “^(mage|root|wang)\>” /etc/passwd | cut -d: -f3,7
找出/etc/rc.d/init.d/functions文件中行首為某單詞(包括下劃線)后面跟一個小括號的行。
將此字符串:welcome to magedu linux 中的每個字符去重并排序,重復次數多的排到前面
echo “welcome to magedu linux” |tr -d ” ” |egrep -o [[:alnum:]] |sort|uniq -c|sort -nr
原創文章,作者:15893442518,如若轉載,請注明出處:http://www.www58058.com/82921