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(替换标识)直接有空格,\\后面还有空格,并且要换行,新插入的内容占一行,之后再换行

 

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