1. 哪位高手給我解釋一下這個命令的含義:ifconfig br0 |grep HWaddr |awk'{print $nf}'>>ip.txt
截取你橋接那塊網卡的MAC地址
ifconfig br0 #顯示br0橋接的網路信息
br0 Link encap:Ethernet HWaddr 00:1b:24:85:e1:61
inet addr:192.168.0.68 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4096 (4.0 KB) TX bytes:7751 (7.5 KB)
grep HWaddr #因為顯示的信息很多所以,我們只需要找到我們需要的條目
br0 Link encap:Ethernet HWaddr 00:1b:24:85:e1:61
awk '{print $NF}' #一條awk語句,意思就是print 列印 $NF <-這是awk里的一個內置變數,代表最後一列也就是 00:1b:24:85:e1:61 ,awk默認以空格為分隔符,所以最後一列就是mac地址
>> ip.txt 最後把截取的內容追加到一個叫ip.txt的文本文件里。
2. awk '{print $2}' 這個命令是什麼意思
linux中shell命令段awk '{print $2}'的意思是選取並輸出第二列的數據。
AWK是一個優良的文本處理工具,Linux及Unix環境中現有的功能最強大的數據處理引擎之一。這種編程及數據操作語言的最大功能取決於一個人所擁有的知識。awk經過改進生成的新的版本nawk,gawk,現在默認linux系統下日常使用的是gawk,用命令可以查看正在應用的awk的來源(ls -l /bin/awk )
linux命令是對Linux系統進行管理的命令。對於Linux系統來說,無論是中央處理器、內存、磁碟驅動器、鍵盤、滑鼠,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。linux命令在系統中有兩種類型:內置Shell命令和Linux命令。
(2)awk過濾ip擴展閱讀:
linux優點:
1、Linux由眾多微內核組成,其源代碼完全開源;
2、Linux繼承了Unix的特性,具有非常強大的網路功能,其支持所有的網際網路協議,包括TCP/IPv4、TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網路特性開發成出新的協議棧;
3、Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中模擬工具的障礙,使系統具有較強的移植性;
參考資料來源:
網路-Awk
網路-linux命令
3. 怎樣用awk,sed等抽取日誌中的IP
因為不知道你的日誌格式,可以參考:
ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
4. netstat -ant | awk '/^tcp\>/{split($5,ip,「:」) 求詳細解讀
^以上命令應該沒有結果,因為沒有輸出語句。
netstat-ant
查找主機中所有 tcp 連接。
netstat-ant|awk'/^tcp>/'#^行開版頭;>單詞結尾
將結果用 awk 處理權,只匹配 tcp 開頭的行。
netstat-ant|awk'/^tcp>/{split($5,ip,":")}'
將匹配的內容的第 5 欄位(欄位分隔符為空白)使用 split 切分,切分規則是以 : 分隔,並將分隔的內容保存在數組 ip 中。
5. 使用awk分別將ip地址的每個段取出來怎麼寫謝謝…
|這樣可否:
echo"192.168.3.120"|awk-F'.''{print$1" "$2" "$3" "$4}'
or
var1=$(awk-F'.''{print$1}')
var2=$(awk-F'.''{print$2}')
var3=$(awk-F'.''{print$3}')
var4=$(awk-F'.''{print$4}')
or
echo"192.168.3.120"|awk-F.'{printf("var1=%svar2=%svar3=%svar4=%s",$1,$2,$3,$4);}';echo
6. 請給出Linux中eth0的IP地址和廣播地址的指令,需使用cut、awk、grep、sed指令。
第一種方法:使用grep和cut取值
第二種方法:使用grep和awk(默認分隔符為空格)取值內
第三種方法:使容用grep和awk(多分隔符)
第四種方法:使用sed和awk
第五種方法:使用grep和awk(多分隔符與加號+)
第六種方法:awk (分隔符及取行)
第七種方法:grep 網卡文件
第八種方法:head取行 awk分割
如果有什麼不懂的話可以去看看《Linux就該這么學》這本書,非常適合新手學習Linux。
7. 哪位高手知道這個命令的意思: ifconfig br0 |grep HWaddr |awk 『{print $NF}' >> ip.txt
ifconfig 是linux或UNIX下查看網路配置信息的命令,類似windows cmd下的ipconfig
ifconfig br0 是返回bro的網路配置信息,
「|」為管道符,將版上一個命令權返回的信息「傳」給下一個命令。
grep HWaddr :通過管道符獲得ifconfig br0返回的信息並過慮出包含「HWaddr」的行。
awk為unix/linux下的一種文本處理工具,功能強大,
此處的awk 『{print $NF}'是將前面grep過濾出來的信息的每行的最後一個空格後的內容列印到屏幕上。
">>"為重定向符,將屏幕輸出重定向到文件。
>> ip.txt:即將以上組合命令產生的本應該列印到屏幕的內容輸入到ip.txt文件中。
8. shell腳本如何提取ip地址最後一位,如192.168.1.100中的100
ipAddr=192.168.1.100
echo${ipAddr##*.}
這樣就提取出了100。襲
Bash中字元串的掐頭去尾方法:
# 表示掐頭,% 表示去尾
助記:鍵盤上# 在前面,鍵盤上% 在後面。
單個#或%的表示最小匹配,雙個#或%表示最大匹配。
也就是說,當匹配有多種方案的時候,選擇匹配最大長度還是最小長度。
用awk也可以:
ifconfigeth0|awk'/inetaddr/{print$2}'|awk-F.'{print$NF}'
9. awk問題 把iplib.txt 中的第一列 輸入到ip.txt gawk -F '{print $1 > "ip.txt"}' iplib.txt
awk里類似C語言環境,不能像shell中這樣直接重定向。
改一下:
gawk '{print $1}' iplib.txt >ip.txt
或者用內system()語句執行容shell重定向命令:
gawk '{system("print "$1" >ip.txt")}' iplib.txt
10. IP=`echo $IP_PORT|awk -F ":" '{print $1}'` PORT=`echo $IP_PORT|awk -F ":" '{print $2}'`
變數來 IP_PORT 是個字元串,形式應自該是:前面是IP地址,後面是埠號,中間是冒號:分隔。
通過這兩句分別取出這個字元串中的IP地址和埠號PORT。
awk 通過 -F":" 指定分隔符為冒號將字元串 IP_PORT 分割為兩個欄位
print $1 列印第一個欄位,即IP地址
print $2 列印第二個欄位,即埠號