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