linux sed命令 awk命令 xargs命令

sed命令

  1. 動作說明

    符號 意義 示例
    a 新增 #在testfile文件的第四行後添加一行,並將結果輸出到標準輸出
    sed -e 4a\newLine testfile
    c 取代 #將第2-5行的內容取代成爲『No 2-5 number』呢?
    nl /etc/passwd | sed '2,5c No 2-5 number'
    d 刪除 #刪除/etc/passwd所有包含root的行,其他行輸出
    nl /etc/passwd | sed '/root/d'
    i 插入
    p 打印 顯示/etc/passwd 文件內的第 5-7 行
    nl /etc/passwd | sed -n '5,7p'
    s 取代 sed 's/要被取代的字串/新的字串/g’
    刪除eth0下包含inet字符串的inet顯示
    /sbin/ifconfig eth0 | grep 'inet' | sed 's/inet//g'
  2. 直接修改文件內容(危險動作) (參數-i)
    sed 的 -i 選項可以直接修改文件內容,這功能非常有幫助!舉例來說,如果你有一個 100 萬行的文件,你要在第 100 行加某些文字,此時使用 vim 可能會瘋掉!因爲文件太大了!那怎辦?就利用 sed 啊!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!

    #將 regular_express.txt 內每一行結尾若爲 . 則換成 !
    sed -i 's/\.$/\!/g' regular_express.txt 
    #利用 sed 直接在 regular_express.txt 最後一行加入 # This is a test:
    sed -i '$a # This is a test' regular_express.txt
    

awk命令

對輸出值按列操作,以下是例子

  1. 分析日誌
    # 查看訪問網站最多的兩個ip地址
    awk '{print $1}' /data/logs/work.log|sort|uniq -c|sort -nr| head -2
    # 查看訪問網站最少的兩個ip地址 (uniq是去除連續出現的重複值,所以之前要用sort排序)
    awk '{print $1}' /data/logs/work.log|sort|uniq -c|sort -nr| tail -2
    
  2. 處理結果
    ls -l |awk '{print $9}' | xargs wc -l  # 查看每一個文件的行數
    

xargs命令

  1. 批量殺死包含“bin/php”的進程
    ps -ef | grep bin/php | grep -v grep |awk '{print $2}' | xargs kill -15
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章