linux三劍客(grep、sed、awk)基本使用
準備
cat text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
grep
-n
grep -n "青" text.txt 1:1 province 省份 青海省 3:3 subject_no 主體備案號 青ICP備11000289號 4:4 addr 註冊地址 青海省西寧市城中區南關街138號 7:7 site_no 網站備案/許可證號 青ICP備11000289號-2
-v
grep -v '青' text.txt 2 domain 域名或者ip tianfengyinlou.cn 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
-E
grep -E '青海省|青ICP' text.txt 1 province 省份 青海省 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 7 site_no 網站備案/許可證號 青ICP備11000289號-2
-l
grep -l 青 text.txt text.txt
-R
grep -R 青海 ./DevMisc # ... ./DevMisc/linux三劍客.md:1 province 省份 青海省 ./DevMisc/linux三劍客.md:4 addr 註冊地址 青海省西寧市城中區南關街138號 ./DevMisc/text.txt:1 province 省份 青海省 ./DevMisc/text.txt:4 addr 註冊地址 青海省西寧市城中區南關街138號
grep -Rl 青 ./DevMisc ./DevMisc/linux三劍客.md ./DevMisc/text.txt
-A
grep -A1 青 text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn -- 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 -- 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址
-B
grep -B1 青 text.txt 1 province 省份 青海省 -- 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 -- 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2
-C
grep -C1 青 text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn -- -- 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 -- -- 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址
sed
查詢
sed -n 3p text.txt 3 subject_no 主體備案號 青ICP備11000289號
sed 3p text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
sed p text.txt 1 province 省份 青海省 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
sed -n 1,5p text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00
sed -n '/青海省/p' text.txt 1 province 省份 青海省 4 addr 註冊地址 青海省西寧市城中區南關街138號
sed -n '/[0-6]/p' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2
sed -n '/0$/p' text.txt 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00
sed -nr '/青海省|青/p' text.txt 1 province 省份 青海省 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 7 site_no 網站備案/許可證號 青ICP備11000289號-2
sed -n '/domain/,/addr/p' text.txt 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號
刪除
# 刪除第三行 sed 3d text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 刪除包含青的行 sed '/青/d' text.txt 2 domain 域名或者ip tianfengyinlou.cn 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 更改text.txt cat text.txt ysj@yangsj2-knownsec 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 #5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 #6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 刪除空行和註釋行 sed -r '/^$|#/d' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
增加
# 在第3行上方增加一行記錄 sed '3i insert oneline above 3rd line' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn insert oneline above 3rd line 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 在第3行下方增加一行記錄 sed '3a insert oneline after 3rd line' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 insert oneline after 3rd line 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 在第3行建立一行記錄,原記錄被替換 sed '3c create oneline at 3rd line' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn create oneline at 3rd line 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
修改
sed -i '1i add oneline above first line' text.txt cat text.txt add oneline above first line 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
# 刪除增加的第一行 sed -i 1d text.txt cat text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
# 刪除第一行並備份 sed -i.bak 1d text.txt cat text.txt 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 cat text.txt.bak 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
替換
# 將"青" 替換為"蜀" sed 's/青/蜀/g' text.txt 1 province 省份 蜀海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 蜀ICP備11000289號 4 addr 註冊地址 蜀海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 蜀ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 將第三行的青替換為蜀 sed '3s/青/蜀/g' text.txt 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 蜀ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司 # 把所有數字替換為x sed -r 's/[0-9]/x/g' text.txt x province 省份 青海省 x domain 域名或者ip tianfengyinlou.cn x subject_no 主體備案號 青ICP備xxxxxxxx號 x addr 註冊地址 青海省西寧市城中區南關街xxx號 x check_time 備案時間, 時間物件 xxxx-xx-xx xx:xx:xx x update_time 更新時間, 毫秒級時間戳 xxxxxxxxxxxxx x site_no 網站備案/許可證號 青ICP備xxxxxxxx號-x x site_url 站點/網站首頁網址 x comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
# 把每一行的第一個數字替換為x sed -r 's/[0-9]/x/' text.txt x province 省份 青海省 x domain 域名或者ip tianfengyinlou.cn x subject_no 主體備案號 青ICP備11000289號 x addr 註冊地址 青海省西寧市城中區南關街138號 x check_time 備案時間, 時間物件 2011-06-23 16:38:00 x update_time 更新時間, 毫秒級時間戳 1607414120745 x site_no 網站備案/許可證號 青ICP備11000289號-2 x site_url 站點/網站首頁網址 x comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
反向引用
# 例如匹配所有的英文詞句([a-z_.]+),然後把他們用<>括起來, \1表示第一組,這裡只有一個組匹配 sed -r 's/([a-z_.]+)/<\1>/g' text.txt 1 <province> 省份 青海省 2 <domain> 域名或者<ip> <tianfengyinlou.cn> 3 <subject_no> 主體備案號 青ICP備11000289號 4 <addr> 註冊地址 青海省西寧市城中區南關街138號 5 <check_time> 備案時間, 時間物件 2011-06-23 16:38:00 6 <update_time> 更新時間, 毫秒級時間戳 1607414120745 7 <site_no> 網站備案/許可證號 青ICP備11000289號-2 8 <site_url> 站點/網站首頁網址 <> 9 <comp_name> 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
awk
取行
# 輸出第三行 awk 'NR==3' text.txt 3 subject_no 主體備案號 青ICP備11000289號
# 輸出第三到第六行 awk 'NR==3, NR==6' text.txt 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 # 也可以透過比較指定輸出範圍 # 輸出3到4行 awk 'NR>=3 && NR<5' text.txt 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號
# 輸出第三行之後的所有行 awk 'NR==3, NR==xx' text.txt 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 2011-06-23 16:38:00 6 update_time 更新時間, 毫秒級時間戳 1607414120745 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
# 輸出包含青的行 awk '/青/' text.txt 1 province 省份 青海省 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 7 site_no 網站備案/許可證號 青ICP備11000289號-2 # 輸出以"號"結尾的行 awk '/號$/' text.txt 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 # 輸出包含domain到包含addr的行 awk '/domain/, /addr/' text.txt 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號
取列
# 例如,取出第二列的值 awk '{print $2}' text.txt province domain subject_no addr check_time update_time site_no site_url comp_name # 取出第2列及最後一列NF(Number of Fields)的值 awk '{print $2,$NF}' text.txt province 青海省 domain tianfengyinlou.cn subject_no 青ICP備11000289號 addr 青海省西寧市城中區南關街138號 check_time 16:38:00 update_time 1607414120745 site_no 青ICP備11000289號-2 site_url comp_name 西寧天豐銀樓金銀珠寶有限公司 # 使用column -t 對齊輸出 awk '{print $2,$NF}' text.txt | column -t province 青海省 domain tianfengyinlou.cn subject_no 青ICP備11000289號 addr 青海省西寧市城中區南關街138號 check_time 16:38:00 update_time 1607414120745 site_no 青ICP備11000289號-2 site_url comp_name 西寧天豐銀樓金銀珠寶有限公司
awk "NR==7,NR==8" text.txt 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址
awk "NR==7,NR==8" text.txt | awk -F/ '{print $2}' 許可證號 青ICP備11000289號-2 網站首頁網址
# 按空格和/ 進行分隔, 取出1到4列 awk "NR==7,NR==8" text.txt | awk -F'[ /]+' '{print $1,$2,$3,$4}' 7 site_no 網站備案 許可證號 8 site_url 站點 網站首頁網址
精確取行列
# ~ 表示包含, !~ 表示不包含 # 取出第四列包含"青"的行 awk '$4 ~ /青/' text.txt 1 province 省份 青海省 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 7 site_no 網站備案/許可證號 青ICP備11000289號-2 # 取出第四列以"號"結尾的行,並輸出最後一列 awk '$4 ~ /號$/{print $NF}' text.txt 青ICP備11000289號 青海省西寧市城中區南關街138號 # 取出第2列以d開始,到第四列以號結尾的行記錄 awk '$2 ~ /^d/, $4 ~/號$/' text.txt 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號
BEGIN
# 列如輸出表頭 awk 'BEGIN{print "序號","名稱","含義","示例"} {print $1,$2,$3,$4}' text.txt | column -t 序號 名稱 含義 示例 1 province 省份 青海省 2 domain 域名或者ip tianfengyinlou.cn 3 subject_no 主體備案號 青ICP備11000289號 4 addr 註冊地址 青海省西寧市城中區南關街138號 5 check_time 備案時間, 時間物件 6 update_time 更新時間, 毫秒級時間戳 7 site_no 網站備案/許可證號 青ICP備11000289號-2 8 site_url 站點/網站首頁網址 9 comp_name 主辦單位名稱(公司名稱) 西寧天豐銀樓金銀珠寶有限公司
END
# 通常用於做統計, 例如對第一列求和 awk '{sum+=$1} END{print sum}' text.txt 45
使用小結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2902461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux三劍客grep、awk和sedLinux
- Linux三劍客Awk、Sed、Grep 命令詳解Linux
- Linux 三劍客 Awk、Sed、Grep 命令詳解Linux
- 效能工具之linux三劍客awk、grep、sed詳解Linux
- Linux:管道命令與文字處理三劍客(grep、sed、awk)Linux
- 指令碼三兄弟 grep、awk、sed指令碼
- Linux 三劍客之sedLinux
- Linux三劍客之sedLinux
- Linux 三劍客之 grep 使用詳解Linux
- linux awk sed grep awk 求和平均最大最小Linux
- Linux三大劍客之awkLinux
- 【案例】Linux三劍客中awk命令如何使用?Linux
- Linux 文字處理工具(grep sed awk )Linux
- Linux三劍客之grep詳解Linux
- Linux三劍客之awk詳解Linux
- shell 中 grep、sed、awk 命令
- Linux (三劍客之三) awk命令詳解Linux
- 006 Linux 命令三劍客之-grepLinux
- 007 Linux 命令三劍客之-awkLinux
- Linux三劍客之awk入門指引Linux
- Linux系統命令三劍客之 awkLinux
- 【shell筆記>命令】grep,sed,awk筆記
- Shell字元操作命令——grep、sed、awk字元
- 【Linux進階】使用grep、find、sed以及awk進行文字操作Linux
- Linux命令之grep/sed/awk等行轉列Linux
- Linux檔案處理三劍客之sedLinux
- Linux檔案處理三劍客之grepLinux
- Linux檔案處理三劍客之awkLinux
- Linux常用基本命令:三劍客命令之-awk格式化動作Linux
- grep、sed、awk、head、tail、gsub、subAI
- 寶付揭秘Linux支付命令操作之grep、sed、awkLinux
- Linux 三劍客之 awk 實戰詳解教程Linux
- 【Shell】sed xargs grep awk的組合用法
- Linux (三劍客之一) grep字串搜尋命令詳解Linux字串
- Linux系統中的管道命令、grep命令、sed命令和awk命令Linux
- [linux]sed與awkLinux
- shell指令碼專題-----cat,find,grep,awk,sed(五)指令碼
- 【Shell】【經驗】awk sed grep find sort常用配搭用法