I have a file that somewhat looks like this:
{1:F195}{2:O5350646}{3:{1028:076}}{4:
:16R:GL
:16R:ADD
:19A::P//U9,1
:16S:AFO
-}{5:{MAC:00}{CHK:1C}}{S:{SAC:}{COP:S}{MAN:P2}}${1:33339}{2:O53}{4:
:16S:G
:16R:A
:19A::H0,
:19A::H0,
:16S:ADDINFO
-}{5:{MAC:0}{CHK:4}}{S:{SAC:}{COP:S}{MAN:GP2}}
Now I want to split this single file into two files based on the delimiter $
and then remove the delimiter also. Any help would be greatly appreciated :)
I have used the following logic:
- First at every occurrence of
$
go to a new line. - I'm able to create multiple files but those are having delimiters.
Code:
FILE=test.dat
sed 's/\$/\n&/g' $FILE > Inter_$FILE
FILE=Inter_$FILE
cat $FILE | while read line
do
sleep 1
FormattedDate=`date +%Y%m%d%H%M%S`
Final_FILE=New_${FormattedDate}_$FILE
echo "line --- $line"
echo "FormattedDate --- $FormattedDate"
Line_Check=`echo $line | tr '$' '@' | cut -c1`
##Line_Check=`sed -e 's/\$/@/g' $line | cut -c1`
echo "Line_Check --- $Line_Check"
echo "Final_FILE --- $Final_FILE"
if [ "$Line_Check" = "@" ]
then
Final_FILE=New_$FormattedDate_$FILE
FILE=$Final_FILE
echo "FOUND In --- $line"
echo "FILE --->>> $FILE"
else
FILE=$Final_FILE
echo "FILE --->>> $FILE"
###`echo $line | cut -c2-` >>
###cat $line` >> $FILE
###Filter_Line=`echo $line`
###echo "Filter_Line --- $Filter_Line"
fi
echo $line >> $FILE
###sed 's/^@//' $FILE > 3_$FILE
done
sed 's/^\$//' $FILE >> Final_$FILE;