grep sed awk find用法

grep -nE '(start|end)' $Filename | awk -F ":" '{print $1}' > $LINEFILE
sed -n '9,19p' pvp_debug_log.csv 

echo ./area_18/20141201/role_login.csv | sed 's/.*area_18.*/area_18/g'   将area_18提出

echo ./area_18/20141201/role_login.csv | sed 's/.*area_[1-9]{2}.*/area_18/g'      [1-9]{2}  连续两个数字的

sed '/AM_CXXFLAGS/d' Makefile.am  删除含有AM_CXXFLAGS的所有行

sed  's////' 删除字符串中的/字符
一般在sed 中替换都用单引号,如下边
sed -in-place ‘s/8080/8001/g’ /home/work/server.xml
但是如果需要把8001改成变量,如
sed -in-place ’s/8080/$port/g‘ /home/work/server.xml
这样就不成功。
此时需要把单引号改成双引号,如下边例子
$port=8001
sed -in-place "s/8080/$port/g" /home/work/server.xml
echo $line | awk '{for(i=3;i<NF;i++) {printf $i" "} printf "
"}' 
awk使用变量:awk '{print "'$var'"}'   " ' ' " 这种形式
netstat -an | grep -E  "ESTABLISHED|WAIT",可以使用 | 来表达
netstat -an | grep -e EST -e WAIT
sort -k 2 指定排序的列
cut -d' ' -f1 ~/.bash_history|sort -d | uniq -c|sort -nr|head
#bash循环读入文件的每一行并处理
cat afile | while read oneline
do
    echo $oneline
done

PS:在grep和sed中, 和s都是无效的,要表示制表符和空格,只能直接敲入tab和空格键,这个在shell脚本中还好说,在命令行模式下就比较麻烦了,因为tab默认是会智能补全命令的,所以要在按tab之前按下ctrl+v,就可以把tab打出来了。

find / -name content(目录或者文件名)

 cat logcharpter.log | awk '{if($5>="23:55:00" && $5<="23:59:59") print}' | wc -l 

原文地址:https://www.cnblogs.com/bornfish/p/4168860.html