我有一個文件,它有點類似於:如何文件分割成多個文件基於一個分隔符,並刪除分隔符,在Unix中
{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}}
現在我想這個單一文件分割成兩個文件基於分隔符$
,然後再刪除分隔符。任何幫助將不勝感激:)
我已經使用以下邏輯:
- 首先在
$
每次發生去一個新的生產線。 - 我可以創建多個文件,但那些文件是有分隔符的。
代碼:
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;
我試過了,但問題是我不能刪除這些delimeters – user2647888