柚子快報邀請碼778899分享:正則表達式之grep
柚子快報邀請碼778899分享:正則表達式之grep
目錄
1、grep命令------查找文件
基本格式
常用選項
示列
2、sort命令-------排序
語法格式
常用選項
示列
3、uniq命令------快捷去重
基本格式
常用選項
4、tr命令------替換、壓縮、刪除
語法格式
常用選項
示列
5、cut命令------快捷裁剪
格式
常用選項
示列
6、split------文件拆分
格式
常用選項
示列
7、paste------文件合并
格式
常用選項
8、eval------變量掃描器
腳本示列
綜合示列:
1、grep命令------查找文件
基本格式
grep [選項]… 查找條件 目標文件
常用選項
選項說明-m 匹配n次后停 -v 顯示不被pattern匹配到的行,即取反 -i 忽略字符大小寫 #可有可無 -n 顯示匹配的行號 -c 統(tǒng)計匹配的行數(shù) -o 僅顯示匹配到的字符串 -q 靜默模式,不輸出任何信息 -A after, 后n行 -B before, 前n行 -C context, 前后各n行 -e 實現(xiàn)多個選項間的邏輯or關(guān)系,如:grep –e ‘cat ' -e ‘dog' file -W 匹配整個單詞 -E 使用ERE,相當(dāng)于egrep,使用擴展正則 -F 不支持正則表達式 -f file 根據(jù)模式文件,處理兩個文件相同內(nèi)容 把第一個文件作為匹配條件 -r 遞歸目錄,但不處理軟鏈接 -R 遞歸目錄,但處理軟鏈接
示列
-m
grep -m 1 root /etc/passwd #多個匹配只取第一個
-v
grep -Ev '^[[:space:]]*#|^$' /etc/fstab
-c
grep -c root /etc/passwd #統(tǒng)計匹配到的行數(shù)
-A
grep -A3 root /etc/passwd #匹配到的行的后3行也顯示出來
-e
grep -e root -e bash /etc/passwd #包含root或者包含bash 的行
-w
grep -w root /etc/passwd
-f
[root@localhost opt]# grep -f 123.txt 456.txt #匹配兩個文件中內(nèi)容相同的部分
a
b
c
ee
-r
[root@localhost opt]# grep -r a /opt #遞歸過濾目錄中的文件
匹配到二進制文件 /opt/.yonghu.sh.swp
/opt/123.txt:a
/opt/456.txt:a
-R
[root@localhost opt]# ln -s 123.txt b
[root@localhost opt]# grep -R a /opt
匹配到二進制文件 /opt/.yonghu.sh.swp
/opt/123.txt:a
/opt/456.txt:a
/opt/b:a
[root@test1 opt]# cat 123.txt |grep -v '^$' >test.txt //將非空行寫入到test.txt文件
[root@test1 opt]# grep "^b" 123.txt //過濾已b開頭
[root@test1 opt]#grep '/$' 123.txt //過濾已/結(jié)尾
2、sort命令-------排序
以行位單位對文件內(nèi)容進行排序,也可以根據(jù)不同的數(shù)據(jù)類型進行排序
語法格式
sort 選項 參數(shù)
cat file | sort 選項
常用選項
選項說明-f 忽略大小寫,默認會大寫字母排在前面 -b 忽略每行前面的空格 -n 按照數(shù)字進行排序 -r 反向排序 -u 等同uniq,表示相同的數(shù)據(jù)僅顯示一行,去重 -t 指定字段分隔符,默認使用tab鍵分隔 -k 指定排序字段 -o<輸出文件> 將排序后的結(jié)果轉(zhuǎn)存至指定文件
示列
-f
-n
?-nr
?-nu
?-t -k?
-o
3、uniq命令------快捷去重
uniq命令用于報告或者忽略文件中連續(xù)的重復(fù)行,常與sort命令結(jié)合使用。
基本格式
uniq [選項] 參數(shù)
常用選項
選項 說明 -c 統(tǒng)計連續(xù)重復(fù)的行的次數(shù),并且合并重復(fù)的行 -u 顯示僅出現(xiàn)一次的行(包括不連續(xù)的重復(fù)行) -d 僅顯示重復(fù)出現(xiàn)的行(必須是連續(xù)的重復(fù)行)
-c
-u
-d
4、tr命令------替換、壓縮、刪除
常用于對來自標準輸入的字符進行替換、壓縮和刪除
語法格式
tr 選項 參數(shù)
常用選項
選項說明-c 保留字符集1的字符,其他的字符(包括換行符\n)用字符集2替換 -d 刪除所有屬于字符集1的字符 -s 將重復(fù)出現(xiàn)的字符串壓縮為一個字符串,用字符集2 替換 字符集1 -t 字符集2 替換 字符集1,不加也行
字符集1:
指定要轉(zhuǎn)換或刪除的原字符集。
必須使用參數(shù)”字符集2“指定轉(zhuǎn)換操作時,必須使用參數(shù)”字符集2“指定轉(zhuǎn)換的目標字符集。
但執(zhí)行刪除操作時,不需要參數(shù)”字符集2“
字符集2:
指定要轉(zhuǎn)換成的目標字符集
示列
-c? -d
-t
-s
5、cut命令------快捷裁剪
格式
格式一:cut [選項] 參數(shù)
格式二:cat file | cut [選項]
常用選項
選項說明-f 指定分隔符(默認分隔符為Tab) -b 按字段進行截取。指定第n個字段; -c 以字節(jié)為單位進行截取 -d 以字符為單位進行截取 -complement 排除所指定的字段 –output-delimiter 更改輸出內(nèi)容的分隔符
示列
cut -d ':' -f 1-3 passwd #已":"作為分隔符,指定第一個到第三個字段進行輸出
?cut -d ':' --complement -f 2 passwd #指定已":"作為分隔符,但是刪除了第二個字段進行輸出
?cat passwd | cut -d ':' -f 1-5 --output-delimiter='@' passwd #將分隔符轉(zhuǎn)換為@,進行輸出
6、split------文件拆分
split命令用于在Linux下將大文件拆分為若干小文件。
格式
split 選項 參數(shù) 原始文件 拆分后文件名前綴
常用選項
選項說明-l 指定行數(shù) -b 指定文件的大小
示列
-l
7、paste------文件合并
按照字段來進行文件的合并
格式
paste [選項] 文件1 文件2
常用選項
選項說明-d 用于指定文件的分隔符(默認情況下為制表符"\n") -s 將列和行的內(nèi)容進行互相交換
8、eval------變量掃描器
命令字前加上eval,shell會在執(zhí)行命令之前掃描它兩次,
eval命令首先會先掃描命令行進行所有的置換,然后再執(zhí)行命令,
該命令適用于那些一次掃描無法實現(xiàn)功能的變量,該命令會對變量進行兩次掃描。
腳本示列
#!/bin/bash
#這是一個驗證eval掃描的腳本
a=100
b=a
echo "普通echo輸出的變量b的值為:" $$b
eval echo "經(jīng)過eval掃描輸出變量b的值為:" $$b
綜合示列:
?統(tǒng)計當(dāng)前主機的連接狀態(tài)
[root@localhost ~]# ss -nta | grep -v '^State' |cut -d " " -f 1| sort | uniq -c
3 ESTAB #表示建立的 TCP 連接處于活動狀態(tài)
17 LISTEN
?統(tǒng)計當(dāng)前連接主機數(shù)
[root@localhost opt]# ss -nt | tr -s " "|cut -d " " -f 5 | sort -n | uniq -c
1 Local
2 192.168.233.21:22
柚子快報邀請碼778899分享:正則表達式之grep
參考閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。