sed -i '$d' file--------------------------删除最后一行
sed -n '$p' file ------------------------打印最后一行 ( -n 阻止输入行自动输出,此时用p才能打印)
sed -n '/AAA/{/CCC/p}' file ---------同时匹配两个字符串sed 's/MA/Massage/; s/PA/Pennsy/' malloc_size.log --------------匹配两个字符串
sed -e 's/MA/Massage/' -e 's/PA/Pennsy/' malloc_size.log--------匹配两个字符串
sed '/123.*456\|456.*123/d' file-------------------------------------------匹配两个字符串
awk '{print $0}END{print "abc"}' file ------------------------------------添加一行到文件尾
1.
DIR="/var/asg/log/AsgLog"
DATE=$(date +"%Y%m%d")
for file in $(ls ${DIR}/asgExec_${DATE}* 2>/dev/null)
do
NAME=$(basename $file)
FILENAME="${DIR}/${NAME}"
echo "------------Logfile:$FILENAME"
awk '{ now=strftime("%Y/%m/%d "); if ($0 ~ /^\['$now'/ && $0 ~ /\[[A-Z]+\]\:/ ) { print $0} else if ($0 !~ /^\[/){ print $0} }' $FILENAME
done
2.
dump_debug_log()
{
lang="$1"
if [ -z "$lang" ]
then
lang="english"
fi
DIR="/var/asg/log/AsgLog"
DATE=$(date +"%Y%m%d")
cat $(ls ${DIR}/asgExec_${DATE}* 2>/dev/null) | awk -v lang="$lang" 'BEGIN { n=0;}
{
if (n>=200)
{
exit;
}
linestr=$0;
if ( index($linestr,"][") > 0 )
{
split($linestr,line,"\\]\\[");
time_info = line[1];
time = substr(time_info,2);
split(line[4],str,"]:");
level = str[1];
msg = str[2];
year = substr(time,1,4);
month = substr(time,6,2);
day = substr(time,9,2);
hour = substr(time,12,2);
minter = substr(time,15,2);
second = substr(time,18,2);
if (length(level) > 0 && lang == "simplified-chinese")
{
n++;
printf("%s~%s年%s月%s日 %s时%s分%s秒 ~%s\n", level, year, month, day, hour, minter, second, msg);
}
else
{
if (length(level) > 0)
{
n++;
printf("%s~%s-%s-%s %s:%s:%s~%s\n",level, year, month, day, hour, minter, second, msg);
}
}
}
else if (index($linestr,"[") == 0 && length($linestr) > 0)
{
n++;
printf(" ~ ~%s\n", $0);
}
}'
}