我有一个数据如下的文件
* sub : A
111
------------------
* sub : B
222
-------------------
* sub : C
333
--------------------
我必须根据值“ -----------------”的结尾将此数据分为3个不同的文件。 我已经编写了用于分隔文件的代码。
但是,现在我必须像A,B,C一样取出在“ sub:”之后写的值名称,并在输出文件名中使用它。
我在下面编写的代码:
cat SAMP.txt | awk 'BEGIN{RS="-----+";i=1} {print $0>i".sql"}{i++}'
如何将其修改为sub的grep值,并在i中使用它,并将文件名设置为A.sql,B.sql和C.sql。
答案 0 :(得分:4)
我想这就是你想要的...
$ awk -v RS='-----+' '{print > ($4".sql")}' file
这些更改可能会更强大
$ awk -F: 'NF>1 && !f {f=$NF".sql"}
/------+$/ {close(f); f=""; next}
{print > f}' file
产生
$ head *.sql
==> A.sql <==
* sub : A
111
==> B.sql <==
* sub : B
222
==> C.sql <==
* sub : C
333
答案 1 :(得分:-1)
执行此操作的另一种方法
from google.appengine.ext import ndb