#!/bin/bash
sed -i 's/ //g' zhang1
declare -i i=1
LASTTIME="12345"
for LINE in $(sed -n '/from=/p' zhang1|sed -n '/to=/p'|sed 's/</\(/g' |sed 's/>/\)/g')
do

LINE2=${LINE#*(}
LINE3=${LINE2%%)*}
LINE3=${LINE3:0:5}       截取LINE3从开始到第五个字符

LINE4=${LINE2#*(}
LINE5=${LINE4%%)*}

LINE6=${LINE4#*(}
LINE7=${LINE6%%)*}

if [ $LINE3 = $LASTTIME ]
then
     LINE3="-----"
echo "$LINE3---$LINE5---$LINE7"
i=$i+1
else
echo "       -"$i" messages------"
     LASTTIME=$LINE3
echo "$LINE3---$LINE5---$LINE7"
i=1
fi
done





for h in (00..23)   可以设置 00开始

LINE=sed -n '/from=/p' test.txt|sed -n '/to=/p'|sed 's/</\(/g'|sed 's/>/\)/g'| sed -n '/'"$time"'/p'|`sed 's/</\(/g' zhang |sed 's/>/\)/g'`


sed 中使用变量  需要使用单引号 括着双引号

这样赋值过程中,如果每行中存在空格   就会出现问题 ; 可以使用sed -i '/s/ //g' test.txt 预处理           cat /etc/passwd|while read line


LINE2=${LINE#*(}       #从前向后     单个  最短  模式匹配
LINE3=${LINE2%%)*}     %从后向前     单个  最短  模式匹配

for LINE in $(egrep "error|Error" $1)   查找两个字符串


#!/bin/bash
#reading data from a file
count=1
cat /etc/passwd|while read line
do
echo "Line $count:$line"
count=$[ $count+1 ]
done

这样赋值 不会出现 空格 干扰赋值的问题。