# Split Large Files Based On Row Pattern..

**URL:** <https://community.unix.com/t/split-large-files-based-on-row-pattern/337033>\
**Category:** Shell Programming and Scripting\
**Created:** [November 25, 2013, 10:21pm UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033 "2013-11-25T22:21:37Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 25, 2013, 10:21pm UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/1 "2013-11-25T22:21:37Z")

</div>

Hi all.

I've tried searching the web but could not find similar problem to mine.

I have one large file to be splitted into several files based on the matching pattern found in each row.

For example, let's say the file content:

```nohighlight
MONTH,ACCOUNT_NO,CUSTOMER_NAME,SEGMENT_CODE,COST_CENTER,BILLED_DATE,BILL_FREQ,BILL_START_DATE,BILL_END_DATE,BILLED_RENTAL,BILLED_EARNED,PREVIOUS_BILLED_EARNED,REMAINING_UNEARNED_BALANCE,TOTAL_REVENUE_EARNED
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,A100027860305,PANG KAM SENG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,25,15.32,9.68,0,25
08,A100026920403,LIM YOKE TIN,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,111,68.03,42.97,0,111
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/08/13,18/09/13,85,35.64,0,49.36,35.64
08,A100015330204,CHUA THIAN SONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
08,A100011760104,TOYO ENTERPRISE,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,113,69.26,43.74,0,113
08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/07/13,18/08/13,135,56.61,78.39,0,135
08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,113,69.26,0,43.74,69.26
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/07/13,03/08/13,115,103.87,11.13,0,115
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/08/13,03/09/13,115,103.87,0,11.13,103.87
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,Y102551020201,LIM LIAN HOCK,S10,YNDSJJ,BP 04,Monthly,04/08/13,03/09/13,20,18.06,0,1.94,18.06
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/08/13,18/09/13,113,47.38,0,65.62,47.38
08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/07/13,03/08/13,45,40.65,4.35,0,45
08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/07/13,18/08/13,113,47.38,65.62,0,113
08,A100015330204,CHUA THIAN SONG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,45,27.58,17.42,0,45
08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/08/13,03/09/13,45,40.65,0,4.35,40.65
08,F221456710106,NORHAZLINA BINTI ABDUL HAMID,R10,YRACAA,BP 19,Monthly,19/07/13,18/08/13,91,38.16,52.84,0,91
08,A100011760104,TOYO ENTERPRISE,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,45,27.58,17.42,0,45
08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/08/13,18/09/13,135,56.61,0,78.39,56.61
08,D208631350106,ZAILAN BIN KHASRAN,R30,YRACNN,BP 19,Monthly,19/08/13,18/09/13,25,10.48,0,14.52,10.48
08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/07/13,18/08/13,85,35.64,49.36,0,85
08,A100027860305,PANG KAM SENG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,25,15.32,0,9.68,15.32
08,F221456710106,NORHAZLINA BINTI ABDUL HAMID,R10,YRACAA,BP 19,Monthly,19/08/13,18/09/13,91,38.16,0,52.84,38.16
08,A100026920403,LIM YOKE TIN,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,111,68.03,0,42.97,68.03

```

So, I want to split based on that 6th column value (comma delimited) and thus

```nohighlight
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/07/13,03/08/13,115,103.87,11.13,0,115
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/08/13,03/09/13,115,103.87,0,11.13,103.87
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,Y102551020201,LIM LIAN HOCK,S10,YNDSJJ,BP 04,Monthly,04/08/13,03/09/13,20,18.06,0,1.94,18.06
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/07/13,03/08/13,45,40.65,4.35,0,45
08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/08/13,03/09/13,45,40.65,0,4.35,40.65

```

---\> BP 04.TXT

```nohighlight
MONTH,ACCOUNT_NO,CUSTOMER_NAME,SEGMENT_CODE,COST_CENTER,BILLED_DATE,BILL_FREQ,BILL_START_DATE,BILL_END_DATE,BILLED_RENTAL,BILLED_EARNED,PREVIOUS_BILLED_EARNED,REMAINING_UNEARNED_BALANCE,TOTAL_REVENUE_EARNED
08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/08/13,18/09/13,85,35.64,0,49.36,35.64
08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/07/13,18/08/13,135,56.61,78.39,0,135
08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/08/13,18/09/13,113,47.38,0,65.62,47.38
08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/07/13,18/08/13,113,47.38,65.62,0,113
08,F221456710106,NORHAZLINA BINTI ABDUL HAMID,R10,YRACAA,BP 19,Monthly,19/07/13,18/08/13,91,38.16,52.84,0,91
08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/08/13,18/09/13,135,56.61,0,78.39,56.61
08,D208631350106,ZAILAN BIN KHASRAN,R30,YRACNN,BP 19,Monthly,19/08/13,18/09/13,25,10.48,0,14.52,10.48
08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/07/13,18/08/13,85,35.64,49.36,0,85
08,F221456710106,NORHAZLINA BINTI ABDUL HAMID,R10,YRACAA,BP 19,Monthly,19/08/13,18/09/13,91,38.16,0,52.84,38.16

```

---\> BP 19.TXT

and so on.

Also, I want to retain the heading

```nohighlight
MONTH,ACCOUNT_NO,CUSTOMER_NAME,SEGMENT_CODE,COST_CENTER,BILLED_DATE,BILL_FREQ,BILL_START_DATE,BILL_END_DATE,BILLED_RENTAL,BILLED_EARNED,PREVIOUS_BILLED_EARNED,REMAINING_UNEARNED_BALANCE,TOTAL_REVENUE_EARNED

```

in each file

Thank you very much for helping.

---

<div class="post-metadata">

**Author:** ![Don\_Cragun](https://community.unix.com/user_avatar/community.unix.com/don_cragun/32/2682_2.png) [@Don\_Cragun](https://community.unix.com/u/Don_Cragun)\
**Post date:** [November 25, 2013, 11:00pm UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/2 "2013-11-25T23:00:36Z")

</div>

As long as you don't have more than about 10 different output files to be produced from an input file, the following awk script should do what you want:

```nohighlight
awk -F, '
FNR == 1 {
        h = $0
        next
}
{ ofile = $6".TXT"
        if(!(ofile in ofiles)) {
                ofiles[ofile]
                print h > ofile
        }
        print > ofile
}' file

```

If you have a lot of output files, you'll need to keep track of how many files are open and close and reopen files as needed. Since your sample input only produces three output files, there was no need to keep track of open files (other than to print the header in each new output file).

If you want to run this script on a Solaris/SunOS system, change `awk` to `/usr/xpg4/bin/awk` , `/usr/xpg6/bin/awk` , or `nawk` .

---

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 25, 2013, 11:29pm UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/3 "2013-11-25T23:29:54Z")

</div>

Wow, that's work charm!

Thanks a lot Don! Really appreciate.

It should work perfect since the total files expected is 10 perfectly!

But how do I exclude the header to be produced as separate text file? If not, total files would become 11.

Anyway, thanks a lot.

---------- Post updated at 12:29 PM ---------- Previous update was at 12:26 PM ----------

One more thing, how do I eliminate the space in the filename?

For example, BP 04.TXT should be BP04.TXT

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![Don\_Cragun](https://community.unix.com/user_avatar/community.unix.com/don_cragun/32/2682_2.png) [@Don\_Cragun](https://community.unix.com/u/Don_Cragun)\
**Post date:** [November 26, 2013, 12:25am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/4 "2013-11-26T00:25:39Z")

</div>

> [@aimy](#):
>
> Wow, that's work charm!
> 
> Thanks a lot Don! Really appreciate.
> 
> It should work perfect since the total files expected is 10 perfectly!
> 
> But how do I exclude the header to be produced as separate text file? If not, total files would become 11.
> 
> Anyway, thanks a lot.
> 
> ---------- Post updated at 12:29 PM ---------- Previous update was at 12:26 PM ----------
> 
> One more thing, how do I eliminate the space in the filename?
> 
> For example, BP 04.TXT should be BP04.TXT
> 
> Thanks for your help.

The header is never written as a separate text file; it is only written as the first line in every text file it creates as a result of finding a new value in field 6 of your input file.

To get rid of zero or more spaces in your output file names, change:

```plaintext
{ ofile = $6".TXT"
        if(!(ofile in ofiles)) {

```

to:

```plaintext
{ ofile = $6".TXT"
        gsub(/ /, "", ofile)
        if(!(ofile in ofiles)) {

```

---

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 26, 2013, 12:44am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/5 "2013-11-26T00:44:25Z")

</div>

Thanks a lot Don. The filename now worked perfectly.

Regarding the header produced as txt file. Actually that was based on the real file which actually got extra info on top:

```nohighlight
HD|20131126_104934|1
MONTH,ACCOUNT_NO,CUSTOMER_NAME,SEGMENT_CODE,COST_CENTER,BILLED_DATE,BILL_FREQ,BILL_START_DATE,BILL_END_DATE,BILLED_RENTAL,BILLED_EARNED,PREVIOUS_BILLED_EARNED,REMAINING_UNEARNED_BALANCE,TOTAL_REVENUE_EARNED
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,A100027860305,PANG KAM SENG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,25,15.32,9.68,0,25
08,A100026920403,LIM YOKE TIN,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,111,68.03,42.97,0,111
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/08/13,18/09/13,85,35.64,0,49.36,35.64
08,A100015330204,CHUA THIAN SONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
08,A100011760104,TOYO ENTERPRISE,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,113,69.26,43.74,0,113
08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/07/13,18/08/13,135,56.61,78.39,0,135
08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,113,69.26,0,43.74,69.26
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/07/13,03/08/13,115,103.87,11.13,0,115
08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/08/13,03/09/13,115,103.87,0,11.13,103.87
08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
08,Y102551020201,LIM LIAN HOCK,S10,YNDSJJ,BP 04,Monthly,04/08/13,03/09/13,20,18.06,0,1.94,18.06
08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/08/13,18/09/13,113,47.38,0,65.62,47.38
08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/07/13,03/08/13,45,40.65,4.35,0,45

```

And thus, it will create BILLED\_DATE.txt as well.

So, in other words the actual header is actually belongs to the 2nd line, not the 1st.

Ermm... ☹

---

<div class="post-metadata">

**Author:** ![Don\_Cragun](https://community.unix.com/user_avatar/community.unix.com/don_cragun/32/2682_2.png) [@Don\_Cragun](https://community.unix.com/u/Don_Cragun)\
**Post date:** [November 26, 2013, 12:51am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/6 "2013-11-26T00:51:40Z")

</div>

> [@aimy](#):
>
> Thanks a lot Don. The filename now worked perfectly.
> 
> Regarding the header produced as txt file. Actually that was based on the real file which actually got extra info on top:
> 
> ```plaintext
> HD|20131126_104934|1
> MONTH,ACCOUNT_NO,CUSTOMER_NAME,SEGMENT_CODE,COST_CENTER,BILLED_DATE,BILL_FREQ,BILL_START_DATE,BILL_END_DATE,BILLED_RENTAL,BILLED_EARNED,PREVIOUS_BILLED_EARNED,REMAINING_UNEARNED_BALANCE,TOTAL_REVENUE_EARNED
> 08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
> 08,A100027860305,PANG KAM SENG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,25,15.32,9.68,0,25
> 08,A100026920403,LIM YOKE TIN,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,111,68.03,42.97,0,111
> 08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
> 08,D217414580206,ABDOL ADI BIN BABA,R20,YRACMM,BP 19,Monthly,19/08/13,18/09/13,85,35.64,0,49.36,35.64
> 08,A100015330204,CHUA THIAN SONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
> 08,A100011760104,TOYO ENTERPRISE,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,45,27.58,0,17.42,27.58
> 08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/07/13,12/08/13,113,69.26,43.74,0,113
> 08,A600022365604,LIM HOOI LENG,R30,YRACPP,BP 19,Monthly,19/07/13,18/08/13,135,56.61,78.39,0,135
> 08,A100036551202,LEE HUA FONG,S10,YNDSAA,BP 13,Monthly,13/08/13,12/09/13,113,69.26,0,43.74,69.26
> 08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/07/13,03/08/13,115,103.87,11.13,0,115
> 08,N351670650204,TING SIEW KIONG,R30,YRAUSI,BP 04,Monthly,04/08/13,03/09/13,115,103.87,0,11.13,103.87
> 08,D919518500104,HENG POH MING,R20,YRAC33,BP 04,Monthly,04/07/13,03/08/13,25,22.58,2.42,0,25
> 08,Y102551020201,LIM LIAN HOCK,S10,YNDSJJ,BP 04,Monthly,04/08/13,03/09/13,20,18.06,0,1.94,18.06
> 08,D925038340109,SITI SHARAH BINTI OTHMAN,R20,YRAC33,BP 04,Monthly,04/08/13,03/09/13,25,22.58,0,2.42,22.58
> 08,D214091570207,CHUAH ANG TUAN,R60,YRACAA,BP 19,Monthly,19/08/13,18/09/13,113,47.38,0,65.62,47.38
> 08,Y502630980403,BAN SENG CHAN SDN BHD,S10,YNDSPP,BP 04,Monthly,04/07/13,03/08/13,45,40.65,4.35,0,45
> 
> ```
> 
> And thus, it will create BILLED\_DATE.txt as well.
> 
> So, in other words the actual header is actually belongs to the 2nd line, not the 1st.
> 
> Ermm... ☹

So, assuming that the 1st line in your input file is not to be copied into any of the output files, change:

```plaintext
FNR == 1 {

```

to:

```plaintext
FNR <= 2 {

```

---

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 26, 2013, 1:04am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/7 "2013-11-26T01:04:28Z")

</div>

Oh God, you are so kind Don.

Thank you so much!

But would you mind to explain a little bit about the code? Why FNR \<=2 not FNR == 2?

Thanks.

---

<div class="post-metadata">

**Author:** ![Don\_Cragun](https://community.unix.com/user_avatar/community.unix.com/don_cragun/32/2682_2.png) [@Don\_Cragun](https://community.unix.com/u/Don_Cragun)\
**Post date:** [November 26, 2013, 1:17am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/8 "2013-11-26T01:17:20Z")

</div>

> [@aimy](#):
>
> Oh God, you are so kind Don.
> 
> Thank you so much!
> 
> But would you mind to explain a little bit about the code? Why FNR \<=2 not FNR == 2?
> 
> Thanks.

It might be clearer to write:

```plaintext
FNR == 1 { next }
FNR == 2 { h = $0; next }

```

but:

```plaintext
FNR <= 2 { h = $0; next }

```

is less typing and accomplishes the same thing. Setting h to the contents of the 1st line is unnecessary, but it is reset to the contents of the 2nd line when the 2nd line is processed.

---

<div class="post-metadata">

**Author:** ![Akshay\_Hegde](https://community.unix.com/user_avatar/community.unix.com/akshay_hegde/32/2771_2.png) [@Akshay\_Hegde](https://community.unix.com/u/Akshay_Hegde)\
**Post date:** [November 26, 2013, 1:26am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/9 "2013-11-26T01:26:58Z")

</div>

@ Don

I think you forgot to close ofile ( `close(ofile)` ), I suspect he might face problem if many files are open while handling big file

---

<div class="post-metadata">

**Author:** ![Don\_Cragun](https://community.unix.com/user_avatar/community.unix.com/don_cragun/32/2682_2.png) [@Don\_Cragun](https://community.unix.com/u/Don_Cragun)\
**Post date:** [November 26, 2013, 1:32am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/10 "2013-11-26T01:32:43Z")

</div>

> [@akshay hegde](#):
>
> @ Don
> 
> I think you forgot to close ofile ( `close(ofile)` ), I suspect he might face problem if many files are open while handling big file

That was discussed in messages #2 and #3 in this thread.

---

<div class="post-metadata">

**Author:** ![Akshay\_Hegde](https://community.unix.com/user_avatar/community.unix.com/akshay_hegde/32/2771_2.png) [@Akshay\_Hegde](https://community.unix.com/u/Akshay_Hegde)\
**Post date:** [November 26, 2013, 1:34am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/11 "2013-11-26T01:34:23Z")

</div>

Yes.. Sorry I just seen it.

---

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 26, 2013, 3:47am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/12 "2013-11-26T03:47:28Z")

</div>

Hi.

Sorry to bother again.

But when I execute against the real file, there's a such situation that the text itself contains comma ",", so I have to make it pipe "|" separated instead.

So, how do I split the file with "|" delimiter?

I've tried analyzing the script but could not find where could I tune in to replace the "," with "|".

Thanks.

---

<div class="post-metadata">

**Author:** ![Akshay\_Hegde](https://community.unix.com/user_avatar/community.unix.com/akshay_hegde/32/2771_2.png) [@Akshay\_Hegde](https://community.unix.com/u/Akshay_Hegde)\
**Post date:** [November 26, 2013, 3:52am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/13 "2013-11-26T03:52:24Z")

</div>

```nohighlight
awk -F"|" ' {................}' file

```

OR

```nohighlight
awk '{................}' FS="|" file

```

---

<div class="post-metadata">

**Author:** ![aimy](https://community.unix.com/letter_avatar/aimy/32/5_5575768a8748004e209b776fc1b2916d.png) [@aimy](https://community.unix.com/u/aimy)\
**Post date:** [November 26, 2013, 3:56am UTC](https://community.unix.com/t/split-large-files-based-on-row-pattern/337033/14 "2013-11-26T03:56:40Z")

</div>

Thanks a lot Akshay.
