sed命令
-
動作說明
符號 意義 示例 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'
-
直接修改文件內容(危險動作) (參數-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命令
對輸出值按列操作,以下是例子
- 分析日誌
# 查看訪問網站最多的兩個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
- 處理結果
ls -l |awk '{print $9}' | xargs wc -l # 查看每一個文件的行數
xargs命令
- 批量殺死包含“bin/php”的進程
ps -ef | grep bin/php | grep -v grep |awk '{print $2}' | xargs kill -15