#!/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
这样赋值 不会出现 空格 干扰赋值的问题。