日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文本处理工具 awk-- 报告生成器

發布時間:2024/9/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文本处理工具 awk-- 报告生成器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、grep

grep
grep -E = egrep

grep 格式

grep 匹配條件 處理文件

grep root passwd過濾root關鍵字
grep ^root passwd以root開頭
grep root$ passwd以root結尾
grep -i root passwd忽略大小寫
grep -E "\<root" passwdroot字符之前不能有字符
grep -E "root\>" passwdroot字符之后不能有字符
grep -數字顯示過濾行以及上面幾行和下面幾行
grep -n顯示匹配的行所在行號
grep -A???顯示過濾行以及下面幾行
grep -B顯示過濾行以及上面幾行
grep -v???反向過濾
grep字符數量匹配規則
^westos以westos開頭
westos$以westos結尾
w....sw開頭s結尾中間4個任意字符
.....ss結尾前面5個任意字符
*字符出現任意
?0到1次
+1次到任意次
{n}???n次
{m,n}m到n次
{0,n}0-n次
{,n}???0-n次
{m,}最少m次
(lee){2}lee字符串出現2次
練習腳本: 請顯示系統中能被su命令切換的用戶名稱 #!/bin/bash grep -E "$(cat /etc/shells)" /etc/passwd | cut -d : -f 1

二、sed

命令格式: sed 參數 命令 處理對象 sed 參數 處理對象 -f 處理規則文件 對字符的處理
p顯示
sed -n? 5p westos顯示第五行
sed -n? 3,5p westos顯示3到5行
sed -ne? "3p;5p westos顯示3和5行
sed -ne 1,5p westos1-5行
sed -ne '5,$p'?? ?westos???5到最后以行
sed -n '/^#/p' fstab???顯示以#開頭的行???

?

d刪除
sed 5d?? ?westos刪除第五行
sed '/^#/d'?? ?fstab把#開頭的行刪除
sed '/^UUID/!d' fstab除了UUID以外的行都刪除
sed -e '5,$d' westos?
-e 多行策略?
a添加
sed -e '$a hello world' fstab?
sed -e '$a hello\nworld' fstab?

sed -e '/^#/a hello world' fstab

?
c替換
sed -e '/^#/c hello world' fstab?
sed '5chello world' westos?
w把符合的行寫到指定文件中
sed '/^UUID/w westofile' westos?? ?##把westos中UUID開頭的行寫入westosfile中?
i插入
sed '5ihello westos' westos?
r整合文件
sed '5r haha' westos?
sed字符替換
sed 's/:/###/g' westos?
sed 's/:/###/' westos?
sed 's/:/###/g' westos?
sed '1,5s/:/###/g' westos?
sed '1s/:/###/g' westos?
sed '1s/:/###/g;5s/:/###/g' westos?
sed '/lp/,/shutdown/s/:/###/g' westos?
sed 's/\//####/g' westos?
sed 's@/@####@g' westos?

sed 's@/@####@g' -i? westos ?? ??? ?把sed處理的內容保存到westos文件中

?

練習及腳本 Apache_port.sh 此腳本后介入數字 http的端口就改為此數字 假設selinux為關閉狀態 #!/bin/bash [ -z $1 ] && {echo -e "\033[31mError:Please input port following script\033[0m"exit } rpm -q httpd &> /dev/null || {echo -e "\033[31mError:Apache is not installed !! \033[0m"exit } [ "$USER" != "root" ] && {echo -e "\033[31mError:Please run script with root !!\033[0m"exit } netstat -antlpue | grep -E ":$1\>" &> /dev/null &&{echo -e "\033[31mError:Port $1 is in used !!\033[0m"exit }sed "/^Listen/cListen $1" -i /etc/httpd/conf/httpd.confsystemctl restart httpd

三、awk

wk:報告生成器 處理機制:awk會逐行處理文本,支持在處理第一行之前做一些準備工作,以及在處理完最后一行做一些總結性質的工作,在命令格式上分別體現如下 BEGIN{}:讀入第一行文本之前執行,一般用來做初始化操作 {}: 逐行處理,逐行讀入文本執行相應的處理,是最常見的編輯指令塊 END{}:處理完最后一行文本之后執行,一般用來輸出處理結果 awk -F 分隔符 BEGIN{}{}END{} FILENAMENR #行數 NF #列數 FILENAME #文件名稱本身 westos #westos變量值 “westos” #westos字符串/bash$/ #條件 /條件1|條件2/ #條件1或者條件2 /條件1/||/條件2/ #條件1或者條件2 /條件1/&&/條件2/ #條件1并且條件2$0 #所有的列 $1 #第一列 $2 #第二列 $3 #第三列 #/etc/passwd文件的第六列沒有home關鍵字并且以bash結尾的行 awk -F : '$6!~/home/&&/bash$/{print}' /etc/passwd

課后練習:

1、抓取主機ip的方法:


2、統計雜在系統中能su切換的并且用戶加目錄不在/home下的用戶數量

awk -F : 'BEGIN{n=0}$6~/home/&&/bash$/{n++}END{print n}' /etc/passwd

?

總結

以上是生活随笔為你收集整理的文本处理工具 awk-- 报告生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。