我有一个文本文件,其格式如下:
06:52:25 -> TRANSACTION START
06:52:26 - line1
06:52:27 - line2
06:52:29 -> TRANSACTION END*
06:53:24 -> TRANSACTION START
06:53:25 - line3
06:53:40 - line4
06:53:52 -> TRANSACTION END
我想将每次出现的交易分开并结束为单独的文件
答案 0 :(得分:1)
尝试:
awk '/TRANSACTION START/{file="trans_"cont++".txt"}{print $0 >> file}' inputfile
<强>解释强>
/TRANSACTION START/{file="trans_"cont++".txt"}
:当START
模式匹配时,目标文件名会更新。
{print $0 >> file}
:使用>>
打印当前文件中的每一行,以避免覆盖。