1 若是11列是0,那麼替換爲空;若是12列是0,那麼替換爲空html
2 不要用>,要用>>tcp
awk 'BEGIN{FS=OFS=","}{if ($11==0) $11=""}{if ($12==0) $12=""}1' important_tg_list.csv >> important_tg_list1.csvpost
awk -F"," '{print NF}' important_tg_list.csv |sort -n|uniqthis
#默認以空格分割,那整個文件就只有一列,打印最後一列結果以下 [root@localhost ~]# cat /etc/passwd|awk '{print $1}'|tail -1 tcpdump:x:72:72::/:/sbin/nologin #用冒號分割打印第一列用戶名 [root@localhost ~]# cat /etc/passwd|awk -F: '{print $1}'|tail -1 tcpdump #從ifconfig結果中匹配出Ip地址,思路:先grep匹配所在行,再用awk列切割 #匹配行 [root@localhost ~]# ifconfig|grep "Bcast" inet addr:192.168.15.172 Bcast:192.168.15.255 Mask:255.255.255.0 #切割列同時將多餘字符替換爲空 [root@localhost ~]# ifconfig|grep "Bcast"|awk '{print $2}'|sed 's/addr://g' 192.168.15.172 #也能夠進行2次awk切割 [root@localhost ~]# ifconfig|grep "Bcast"|awk '{print $2}'|awk -F: '{print $2}' 192.168.15.172 [root@localhost ~]# ifconfig|grep "Bcast"|awk '{print $2}'|awk -F: '{print "ip:"$2"-"$1}' ip:192.168.15.172-addr #打印文件的第1,3行用分號間隔條件 [root@localhost sh]# cat test.txt|awk 'NR==1;NR==3 {print $0}' www.jf.com aaa www.jf.com ccc #打印第3行之後內容 [root@localhost sh]# cat test.txt|awk 'NR>=3 {print $0}' www.jf.com ccc www.jf.com ddd www.jf.com eee #打印符號條件最後一個域(默認空格分割的最後一列) [root@localhost sh]# cat test.txt|awk '{print $NF}' aaa bbb ccc #打印倒數第2個域 [root@localhost sh]# cat test.txt|awk '{print $(NF-1)}' www.jf.com www.jf.com #查看tcp監聽端口的狀態 [root@localhost sh]# netstat -an|awk '/^tcp/ {print $NF}' LISTEN LISTEN #監聽 ESTABLISHED #轉發 #掃描文件打印全部字符長度大於80的行的行號NR [root@localhost sh]# cat test.txt|awk 'length($0)>80 {print NR}'
https://juejin.im/post/5d09ebd05188252ea55fe683spa
i參數表示修改,不加i參數只能在屏幕上輸出預覽修改都的效果並不會修改源文件,加i參數就沒有輸出直接改源文件 a參數表示在查找對象下一行添加內容,不帶空格a後面直接跟添加內容 i 單引號內i參數表示在上一行插入 #n/p參數搭配使用查找特定對象 [root@localhost ~]# df -h|sed -n '/sda1/p' /dev/sda1 194M 30M 155M 17% /boot #預覽添加內容如給腳本加個註釋語句,注意a後面直接跟內容 [root@localhost sh]# sed '/192.168.15.2/a#this is test' ip_list 192.168.15.1 /var/www/html1 /data/www/html1 192.168.15.2 /var/www/html2 /data/www/html2 #this is test #上一行插入 [root@localhost sh]# sed '/192.168.15.2/i#this is test2' ip_list 192.168.15.1 /var/www/html1 /data/www/html1 #this is test2 192.168.15.2 /var/www/html2 /data/www/html2 #結合命令打印1到3行,用逗號間隔 [root@localhost ~]# df -h|sed -n '1,3p' Filesystem Size Used Avail Use% Mounted on /dev/sda2 77G 3.5G 70G 5% / tmpfs 491M 0 491M 0% /dev/shm #結合命令打印1和3行,用分號間隔 [root@localhost ~]# df -h|sed -n '1p;3p' Filesystem Size Used Avail Use% Mounted on tmpfs 491M 0 491M 0% /dev/shm #查找以/結尾的行打印出來 [root@localhost ~]# df -h|sed -n '/\/$/p' /dev/sda2 77G 3.5G 70G 5% / #多個替換能夠一塊兒書寫如將%及G替換爲空,替換字段用分號間隔 [root@localhost ~]# df -h|sed -n '/\/$/p'|sed 's/G//g;s/%//g' /dev/sda2 77 3.5 70 5 / [root@localhost ~]# df -h|sed -n '/\/$/p'|sed -e 's/G//g' -e's/%//g' /dev/sda2 77 3.5 70 5 / #在每行的末尾或者開頭追加字段,&表示追加,注意追加字段的空格處理 [root@localhost sh]# sed 's/^/&www.jf.com /g' test.txt www.jf.com aaa www.jf.com bbb www.jf.com ccc [root@localhost sh]# sed 's/$/& www.jf.com/g' test.txt aaa www.jf.com bbb www.jf.com ccc www.jf.com ------------------------------------------------------------------------------------------ #預覽替換後所有文件 sed 's/This/aaa/' test.txt #-n選項和p命令一塊兒使用表示只打印那些發生替換的行 sed -n 's/This/aaa/p' test.txt #直接編輯文件選項-i,會匹配test.txt文件中每一行的第一個This替換爲this sed -i 's/This/this/' test.txt #全面替換標記g,使用後綴/g標記會替換每一行中的全部匹配 sed 's/this/This/g' test.txt #當須要從第N處匹配開始替換時,能夠使用/Ng echo sksksksksksk | sed 's/sk/SK/2g' skSKSKSKSKSK echo sksksksksksk | sed 's/sk/SK/4g' skskskSKSKSK #以上命令中字符 / 在sed中做爲定界符使用,也能夠使用任意的定界符 echo sksksksksksk | sed 's:sk:SK:4g' echo sksksksksksk | sed 's|sk|SK|4g' #定界符出如今樣式內部時,須要進行轉義 echo '/usr/local/bin' | sed 's/\/usr\/local\/bin/\/USR\/LOCAL\/BIN/g' /USR/LOCAL/BIN #刪除空白行d sed '/^$/d' test.txt #刪除文件指定第2行(編輯文件須要和參數i配合使用) sed '2d' test.txt #刪除文件的第2行到末尾全部行 sed '2,$d' test.txt #刪除文件最後一行 sed '$d' test.txt #刪除文件中全部以my開頭的行 sed '/^my/'d test.txt #打印從第5行開始到第一個包含以this開始的行之間的全部行 sed -n '5,/^this/p' test.txt #-e選項容許在同一行裏執行多條命令,第一條命令刪除1至5行,第二條命令用MY替換my。命令的執行順序對結果有影響。若是兩個命令都是替換命令,那麼第一個命令將影響第二個命令的結果 sed -e '1,5d' -e 's/my/MY/' test.txt #寫入命令w,在test.txt中全部包含my的行都被寫入test2.txt裏 sed -n '/my/w test2.txt' test.txt