linux100day(day4)--文本处理三剑客
在介紹三劍客之前,先來認(rèn)識一下通配符和正則表達(dá)式
通配符
正則表達(dá)式
作用:通過一些特殊字符,來表示一類字符內(nèi)容
1、字符匹配
.? ? ?任意一個字符
[ ]? ?范圍內(nèi)的任意一個字符
[^ ]?取反
字符類 [:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]
2、次數(shù)匹配
*? 匹配前面的字符0次到多次
?? 匹配前面的字符0次到1次
+? 匹配前面的字符1次到多次
3、位置錨定
^ 錨定行首
$ 錨定行尾
\b 錨定詞首和錨定詞尾
\> 錨定詞尾
\< 錨定詞首
<\root\> 匹配root單詞
\{m\} ? ?匹配前面的字符m次
\{m,n\} 匹配前面的字符m到n次
?
4、分組
\(\)
分組特性:默認(rèn)清空下,linux系統(tǒng)下回為分組指定變量,變量表示形式\1 \2 \3
day4--文本處理三劍客awk,sed,grep
三劍客用法非常靈活強(qiáng)大,需要在練習(xí)中慢慢體會,遂以練習(xí)為主。
awk(報告生成器)
awk作為三劍客的老大,擅長于取列,主要用來做文本輸出格式化
awk在處理文件時是逐行處理的
在awk中,全部行稱為$0,第一個字段稱為$1,第二個字段稱為$2……
NR為行號,NF表示最后一行
BEGIN表示最開始執(zhí)行,END表示最末尾執(zhí)行,因?yàn)檫@種特性,BEGIN常常用來賦值
awk? [選項(xiàng)] [處理命令(腳本)]? [文件]
awk -F 指定輸入文件折分隔符 awk -v 賦值一個用戶定義變量 awk -f 從腳本文件中讀取awk命令? 例1、輸出/etc/passwd第一行的第一個域
例2、打印出/etc/passwd的第3個域和第5個域
例3、匹配/var/log/message中,帶有erro關(guān)鍵字的相關(guān)信息
例4、輸出/etc/passwd中文件名,行數(shù),列數(shù),和整行信息
awk -F ':' '{print FILENAME, NR , NF ,$0}' /etc/passwd例5、使用冒號分隔符,查詢最后一列
例6、使用awk輸出第一塊網(wǎng)卡的ip地址
?
sed(流處理器)
sed作為三劍客的老二,擅長取行,替換和數(shù)據(jù)搜尋
sed [選項(xiàng)] [腳本] [文件]
sed -e 以選項(xiàng)中指定的腳本來處理輸入結(jié)果 sed -f 以選項(xiàng)中指定的腳本文件來處理輸入結(jié)果 sed -n 只顯示處理后結(jié)果sed -i 替換
例1、查看/etc/passwd5-10行
這個p代表print打印,同理,d代表delete刪除
例2、搜尋/etc/passwd中有root關(guān)鍵字的行
例3、新建一個文件,并刪除2到4行
grep(文本行過濾工具)
grep [option]... PATTERN [FILE]
? ? ?PATTERN一般使用兩種方法,正則表達(dá)式和通配符
egrep = grep -E 使用擴(kuò)展的正則表達(dá)式進(jìn)行匹配
fgrep = fast grep 只使用文件通配符進(jìn)行匹配
grep 默認(rèn)使用正則表達(dá)式進(jìn)行文本匹配
grep -P使用perl語言的正則表達(dá)式引擎進(jìn)行搜索 grep -f指定文件 grep -i 忽略大小寫 grep -v反選 grep --color=auto 語法著色 grep -c統(tǒng)計(jì) grep -o輸出時僅顯示匹配內(nèi)容(默認(rèn)輸出的是匹配到的行) grep -n顯示行號 grep -w只匹配與整個單詞匹配的行? 例1、顯示/proc/meminfo文件中大小s開頭的行
例2、顯示/etc/passwd文件中不以/bin/bash結(jié)尾的行
例3、顯示/etc/passwd文件中UID最大的用戶的用戶名
? 例4、如果用戶root存在,顯示其默認(rèn)的shell程序
?
??例5、找出/etc/passwd中的兩位或三位數(shù)
?
轉(zhuǎn)載于:https://www.cnblogs.com/Y139147/p/11353628.html
總結(jié)
以上是生活随笔為你收集整理的linux100day(day4)--文本处理三剑客的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 场景编辑器的草案
- 下一篇: Sql Server中实现Mysql中的