首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

一个Shell有关问题,小弟我实在想不出来,请大家帮帮忙

2013-04-20 
一个Shell问题,我实在想不出来,请大家帮帮忙!大家好,我是刚学linux的新手,我用是red hat,现在遇到一个问题

一个Shell问题,我实在想不出来,请大家帮帮忙!
大家好,我是刚学linux的新手,我用是red hat,现在遇到一个问题,解决不了,请大家帮忙看看,小弟没齿难忘。

这个是一个txt文件,文件名:test.txt,其内容如下
Start of Data
**********************************************************************
Record (1) "EGSNPDPRecord"
   "recordType" = "00E1"
   "servedIMSI" = "455001131950438"
   "ggsniPBinV4Address" = "116193008089"
   "chargingID" = "72DF9D5B"
End of Record (1)
Record (2) "EGSNPDPRecord"
   "recordType" = "00E1"
   "servedIMSI" = "455001151010916"
   "ggsniPBinV4Address" = "116193008089"
   "chargingID" = "5B9DB29F"
End of Record (2)
**********************************************************************
End of Data

问题:使用Shell或者其他办法,将上述的文件转换成如下格式,写到一个文件,文件名另定
Result File:
00E1|455001131950438|116193008089|72DF9D5B
00E1|455001151010916|116193008089|5B9DB29F

----请各位赐教!!!小弟非常感谢你们。我已经试了一天还是没弄成答案那样。。
shell Red?Hat Linux
[解决办法]

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

[解决办法]
$ 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

热点排行