In this short article we will see how we can split a file in Linux using a STRING as the split delimiter.
I will use this file as example :
INSERT INTO w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd a
sd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12
w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr
INSERT INTO w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd a
sd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12
w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs g
fdr g w12w12 asd asd sfs efsdfs gfdr
INSERT INTO w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd
asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w1
2w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs
gfdr g w12w12 asd asd sfs efsdfs gfdr
INSERT INTO w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd a
sd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12
w12 asd asd sfs efsdfs gfdr
awk '/INSERT INTO/{n++}{print "out" n ".txt" }' file.txt
[dbadmin@primary test]$ ll
total 4
-rw-r--r-- 1 dbadmin verticadba 1064 Mar 23 17:35 file.txt
[dbadmin@primary test]$ awk '/INSERT INTO/{n++}{print "out" n ".txt" }' file.txt
[dbadmin@primary test]$ ll
total 20
-rw-r--r-- 1 dbadmin verticadba 1068 Mar 23 17:43 file.txt
-rw-r--r-- 1 dbadmin verticadba 242 Mar 23 17:43 out1.txt
-rw-r--r-- 1 dbadmin verticadba 308 Mar 23 17:43 out2.txt
-rw-r--r-- 1 dbadmin verticadba 309 Mar 23 17:43 out3.txt
-rw-r--r-- 1 dbadmin verticadba 209 Mar 23 17:43 out4.txt
[dbadmin@primary test]$ cat out1.txt
INSERT INTO w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g
w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd
asd sfs efsdfs gfdr g w12w12 asd asd sfs efsdfs gfdr g w12w12 asd asd sfs
efsdfs gfdr