shell上常用的命令

日誌查找: cat userLog.log | grep "searchKey" -A 10 -B 5 | cut -d ":" -f 1 | cut -b 2

cat:打印文件內容 cat -n user.log 輸出內容加行號

echo 往文件寫  echo "hello" >> new.log   >表示覆蓋, >> 表示追加

tail 打印文件

tail -f user.log 
-f 循環打印
-100f 每100行打印一次
-n 100 顯示文件結尾100行
-c 10 顯示文件最後10個字符

grep :分組,查看日誌經常用到

從userLog.log 搜索字符, 
-A 搜到結果行之後再顯示多少行
-B 搜到結果行之前再顯示多少行
-C -A -B的合集
-c 統計符合行總數
-i 忽略搜索字符大小寫
-n 顯示搜索結果所在的行數
-v 找出除了這條記錄的其他記錄

ps -ef | grep rsync | grep -v grep |awk '{print $2}'  找出rsync的進程id,如果沒有grep -v 會有兩條記錄,

cut 行分割

echo "abc:123" | cut -d ":" -f 1 | cut -c 2  結果:b
-d 自定義分隔符
-f 行分割後指定哪個區域, 從1開始
-b -c 以字符分割, 獲取結果,

sed 利用腳本編輯文件內容

a:新增行後,i:新增行前,d:刪除  c:取代,s:替換

linux: -i直接修改文件, -e多點編輯,不加參數,結果打印到屏幕,不修改文件,加\\防止轉移  需要換行,用\n
sed -i "4a\\Newline" user.log  從文件第4行後第5行新增Newline
sed -i "4i\\Newline" user.log  從文件第4行後第3行新增Newline
sed -i "2,4d" user.log    從2到4行,全刪除,包含2,4
sed -i "2,4c\\replace"   將2,4行內容替換爲 replace
sed -i "s/oldString/newString/" user.log 將文件中的內容替換,支持正則
sed -e '3,$d' -e 's/bash/blueshell/'  -e多點編輯, 先刪除第3行到末尾的數據,再將blueshell 替換bash

mac:不一樣的地方在插入文件,執行sed,第一個參數表備份格式,不需要可以爲空
sed -i "" "s/old/new/g" user.log
sed -i "" "6,8 c\\  
temp
" tmp.xml
sed -i "" "2 a\\  
new line
" tmp.xml
插入文件,數字和c(替換標識)直接有空格,\\後面還有空格,並且要換行,新插入的內容佔一行,之後再換行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章