18,771
社区成员
发帖
与我相关
我的任务
分享
#!/usr/bin/perl -w
open (FILE,"<logfile");
$/ = "\"" ;
while(<FILE>)
{
if($_=~/End/)
{
print "\n" ;
}
if($_=~/(^[0-9])\w/)
{
$_=~s/\"//g;
print "$_|" ;
}
}
close(FILE);
00E1|455001131950438|116193008089|72DF9D5B|
00E1|455001151010916|116193008089|5B9DB29F|sed -n '/=/ s/.*"\(.*\)"/\1/p' test.txt|paste -d \| - - - -
sed -n '/=/p' test.txt|sed 's/.*=//'|sed 's/[" ]//g'|paste -d \| - - - -
sed -n '/=/p' f4|sed 's/.*=//'|sed 's/[" ]//g'|paste -d \| - - - -
awk -F'"' ' /^"/ {printf("%s|",$4)} /^End/ {print "\n"}' logfile
00E1|455001131950438|116193008089|72DF9D5B|
00E1|455001151010916|116193008089|5B9DB29F|$ awk 'BEGIN{FS="\""}/= /{v[i++]=$4}END{print "Result File:";for(i=0;i<length(v);i++){if((i+1)%4)printf "%s|", v[i];else printf "%s\n", v[i]}}' test.txt
Result File:
00E1|455001131950438|116193008089|72DF9D5B
00E1|455001151010916|116193008089|5B9DB29F
echo $1
echo $2
rm $2
#read line < $1
#while [ -n "$line" ]
while read line
do
#echo "$line"
temp=$(echo "$line" | cut -d"=" -s -f2)
#echo "temp = $temp"
echo "$line" | grep "="
if [ $? -eq 0 ]; then
if [ -z "$result" ]; then
result=$temp;
else
echo "$temp is null"
result=$result"|"$temp
fi
echo "result = $result"
elif [ -n "$result" ]; then
echo "write $result to file $2"
echo $result | sed 's/[\" ]//g' >>$2
unset result
fi
#read line < $1
done < $1
这样使用:
./script.sh data.txt outputfile.txt