2016/08/07:文本處理工具及正則表達式

  在本次課程中,本以為和前面的內容難度差不多,內心毫無提防,但在做隨堂練習的時候,被慘虐,不由得使我想起了高三時候拿到一張數學單元練習題,一道題也不會做的那種感覺,無助,彷徨,不甘。到了晚上總結了一下,還是有緣由可尋的。直接原因就是前面知識記得不牢固,也并未完全理解是和意思,尤其是tr命令,適用于何處,沒按照5W1H方法來進行總結學習,導致應用的時候思路不清,不能做到學以致用。以后的學習還得更用心,同時講究方式方法啊。



為何要使用文本處理工具和正則表達式,原因在于以前學過的tr,cut等命令大多數適合處理小部分字符,并且效率有限,所以更近一步搭配使用grep。正則的出現是為了精準的對所需要的字符串進行匹配,更加高效的查找。

1.

查看文本內容

less: opposite of more

more

兩個功能類似,less更全面一點,可以向前翻頁,pageup,pagedown

還可以/進行字符搜索

2.文件截取

  head

    -c 指定獲取文件前多少字節

    -n 取行

    – # 等同取-n 

head.png

  tail

    -c 后多少字節

    -n 后幾行

    -#

    -f 跟蹤顯示文件新追加的內容,常用于日志監控

3.

cut 抽取文本字段

    -d 指明分隔符

    -f #

    -f1-3,7 打印1,2,3,7字段

    -c11-29 :打印從左至右第11字符到第29字符

    –output-delimiter=STRING 指定輸出分隔符

4.paste 合并兩個文件同行號的列到一行

    paste f1 f2

    paste -s  f1 f2

5.分析文件工具,整理統計,比較

    wc:數據統計

    $wc f1

  39      237   1901     f1

  行數  字數   字符數   文件名稱

QQ截圖20160807173114.png

 wc

  -l line:只計行數

  -w   單詞數

  -c  數字總節數

  -m 字符總數

 sort

  -r

  -n 執行數字大小整理

  -f 

  -u 刪除輸出中的重復行

  -t c :選項使用c作為定界符

  -k X :按照X列來排序

 uniq:從輸入中刪除重復的前后相接的行

  -c 顯示每行重復重復出現的次數

  -d 僅顯示重復的行

  -u 僅顯示不曾重復的行

 diff 比較兩個文件之間的區別

****************************

隨堂練習

     1、找出ifconfig命令結果中本機的所有IPv4地址

    2、查出分區空間使用率的最大百分比值

    3、查出用戶UID最大值的用戶名、 UID及shell類型

    4、查出/tmp的權限,以數字方式顯示

    5、統計當前連接本機的每個遠程主機IP的連接數,并按從大

    到小排序

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

文本處理第一大劍客

grep:Global search REgular expression and Print out the line

用指定模式進行逐行匹配

grep 

–color=auto:匹配到的文本著色,最好寫入環境變量中~/.bashrc

-v 取反,顯示不能被匹配到的行

-i 忽略字符大小寫

-n 顯示行號

-c 統計匹配到的行數

-o 僅顯示匹配到的字符串

-q 靜默模式,無任何輸出

-A after,后幾行

-B before,前幾行

-C 前后各n行

-e 實現多個選項間的邏輯or關系

grep -e 3 -e 9

-w

-E ERE,=egrep,擴展的正則表達式

****************************

****************************

****************************

REGEXP

字符匹配

. 任意單個字符

[] 括號內的任意單個字符

[^] 指定范圍外的任意單個字符

[:alpha:] 所有字母

[:alnum:] 數字和字母

[:punct:] 標點符號

[:digit:] 所有數字 

次數匹配

* 匹配前面的字符任意次,包括0次,貪婪模式

.* 任意長度的任意字符

\?  前面的字符0或者1次

\+ 匹配前面的字符至少一次

\{m\} 匹配前面的字符至少m次

\{m,n\} 至少每次,至多n次

位置錨定

^ 行首錨定

$ 行尾錨定

^$ 空行

^PATTERN$ 用于模式匹配整行

^[[:space:]]$:空白行

\< 詞首錨定 \b

\> 詞尾錨定 \b

\<PATTERN\> 匹配整個單詞

***

分組  分組括號中的模式匹配到的內容會被正則表達式引擎記錄

 于內部的變量中,這些變量的命名方式為: \1, \2, \3, …

后向引用:引用前面模式匹配到的字符

********************

隨堂練習2

   1.顯示/proc/meminfo文件中以大小s開頭的行; (要求:使

用兩種方式)

    2、顯示/etc/passwd文件中不以/bin/bash結尾的行

    3、顯示用戶rpc默認的shell程序

    4、找出/etc/passwd中的兩位或三位數

    5、顯示/etc/grub2.cfg文件中,至少以一個空白字符開頭的

    且后面存非空白字符的行

    6、找出"netstat -tan"命令的結果中以'LISTEN'后跟0、 1

    或多個空白字符結尾的行

    7、添加用戶bash、 testbash、 basher以及nologin(其shell為

    /sbin/nologin),而后找出/etc/passwd文件中用戶名同shell名

    的行

************************

egrep

次數匹配

?0或1次

+ 至少一次

{m} 匹配m次

{m,n}:至少m次,至多n次

分組:

()

后向引用 \1,\2

或者

a|b:

C|cat:

(C|c)at或cat

******************************

隨堂練習3

    1.顯示當前系統root、 mage或wang用戶的UID和默認shell

    2、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包

      括下劃線)后面跟一個小括號的行

    3、使用egrep取出/etc/rc.d/init.d/functions中其基名

    4、使用egrep取出上面路徑的目錄名

    5、統計以root身份登錄的每個遠程主機IP地址的登錄次數

    6、利用擴展正則表達式分別表示0-9、 10-99、 100-199、

    200-249、 250-255

    7、顯示ifconfig命令結果中所有IPv4地址

原創文章,作者:000,如若轉載,請注明出處:http://www.www58058.com/30599

(0)
000000
上一篇 2016-08-07 14:17
下一篇 2016-08-07 22:05

相關推薦

  • Nginx反向代理的常用調度算法

    upstream 調度算法 1.rr 按客戶端請求順序把客戶端的請求逐一分配到不同的后端的服務器,這相當于lvs中的rr算法。如果后端服務器巖機(默認情況下只檢測80端口,如果后端報502,404,403,503,還是會直接返給用戶),巖機服務器會被自動剔除,使用戶訪問不受影響,請求會分配給正常的服務器 2.weight(權重) 在輪詢算法的基礎上加上權重(…

    Linux干貨 2016-06-01
  • 互聯網安全之iptables/netfilter入門到進階

    隨著互聯網技術的方興未艾,各種網絡應用層出不窮,網絡攻擊、黑客入侵也成了網民暢游互聯網的心頭大患,互聯網安全也愈加受到了人們的重視。網絡防火墻,作為一種簡單高效的互聯網防御手段,逐漸成為了網民暢游網絡世界的保護傘。下面筆者介紹下Linux系統的守衛者——iptables/netfilter。 ?一 兄弟齊心,其利斷金 ?iptables/netfilter就…

    Linux干貨 2017-05-06
  • 20160804課堂練習

    grep正則表達式課堂練習 1、找出ifconfig命令結果中本機的所有IPv4地址 # ifconfig | head -2 | cut -dt -f2 | cut -dn -f1 | tail -1 2、  查出分區空間使用率的最大百分比值 # df | cut -c56-58 | sort -n | tail -1 3、  查出用戶…

    Linux干貨 2016-08-05
  • ansible基礎應用

    ansible基礎 一、運維主要工作 ansible聚集以上功能于一身,能夠完整輕易的實現應用部署和批量命令功能,適用于主機數量不太多,再大的用puppet。 二、ansible特性 (1)模塊化:調用特定的模塊,完成特定任務; (2)基于python語言實現,由paramiko,PYYAML和JINJa2三個關鍵模塊組成 (3)部署簡單:agentless…

    Linux干貨 2017-01-04
  • 初探linux

    計算機的組成及其功能: 存儲器:    實現記憶功能的部件用來存放計算程序及參與運算的各種數據 運算器:    負責數據的算術運算和邏輯運算即數據的加工處理 控制器:    負責對程序規定的控制信息進行分析,控制并協調輸入,輸出操作或內存訪問 輸入設備:    實現計算程序和原始…

    Linux干貨 2016-10-29
  • Linux基礎指令(1)

    1.Linux上的文件管理類命令都有哪些,其常用的使用方法及相關實例演示  文件管理工具:cp mv rm cp命令 : 單源復制: cp [option]… [-T]  SOURCE DEST     -bash-4.1# …

    Linux干貨 2016-11-09
欧美性久久久久