Splitting file into 2 files ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Splitting file into 2 files ?
# 8  
Old 11-19-2010
Hi Franklin,

As per your suggestion
I have given the below command using nawk

Code:
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" '{fn=length($1)==4?"ADDR\_":"SLICE\_"  print > "ABS_" fn
"_" var1 "_" var2 ".txt"}' abs_spoolfile.txt

But I am getting following error

Code:
nawk: syntax error at source line 1
 context is
        {fn=length($1)==4?"ADDR\_":"SLICE\_"  >>>  print <<<  > "ABS_" fn "_" var1 "_" var2 ".txt"}
nawk: illegal statement at source line 1

Seems the syntax with nawk is different
regards
jc
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 11-19-2010 at 08:10 AM.. Reason: code tags, please!
# 9  
Old 11-19-2010
There must be a semicolon between before the print command or the command should be on a separate line:
Code:
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" ' {fn=length($1)==4?"ADDR\_":"SLICE\_" 
print > "ABS_" fn "_" var1 "_" var2 ".txt"}' abs_spoolfile.txt

or in 1 line:
Code:
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" '{fn=length($1)==4?"ADDR\_":"SLICE\_" ; print > "ABS_" fn "_" var1 "_" var2 ".txt"}' abs_spoolfile.txt

# 10  
Old 11-19-2010
Hi
I used this below code but somehow I am not getting the files generated and also I am not getting any error too

Code:
 
v_projectname=PROJ_X12
v_networkid=ddd77xER

Code:
 
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" ' {
fn=length($1)==4?"ADDR\_":"SLICE\_"
print > "ABS_" 
fn "_" var1 "_" var2 ".txt"
}' testfile.txt

Sample Text file (testfile.txt) is
Code:
aaa1|bbb1|ccc1
11|21|31|
12|22|32|
13|23|33|
14|24|34|
aaa2|bbb2|ccc2
31|51|71|
32|52|72|
33|53|73|
34|54|74|
aaa3|bbb3|ccc3
41|61|81|
42|62|82|
43|63|93|
44|64|94|
aaa4|bbb4|ccc4

I am only getting one file by name
ABS_
with all the content of testfile.txt

Seems I am doing some mistake .

regards
JC
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 11-19-2010 at 11:54 AM.. Reason: code tags, PLEASE!
# 11  
Old 11-19-2010
That is because , you did not do what Franklin suggested as it is.

try as he suggested , as it is:

Code:
 
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" '{fn=length($1)==4?"ADDR\_":"SLICE\_" ; print > "ABS_" fn "_" var1 "_" var2 ".txt"}' abs_spoolfile.txt

# 12  
Old 11-19-2010
Sorry I tried exactly the same but I got following error

nawk: syntax error at source line 1
context is
{fn=length($1)==4?"ADDR\_":"SLICE\_" ; print > "ABS_" >>> fn <<< "_" var1 "_" var2 ".txt"}
nawk: illegal statement at source line 1

Is it because when I copy and paste then I get some whitespace special characters in between which leads to some error (Sorry if this sounds stupid)

Regards
JC
# 13  
Old 11-19-2010
Quote:
Originally Posted by shekharjchandra
Sorry I tried exactly the same but I got following error

nawk: syntax error at source line 1
context is
{fn=length($1)==4?"ADDR\_":"SLICE\_" ; print > "ABS_" >>> fn <<< "_" var1 "_" var2 ".txt"}
nawk: illegal statement at source line 1

Is it because when I copy and paste then I get some whitespace special characters in between which leads to some error (Sorry if this sounds stupid)

Regards
JC
Can you try typing it manually once and see. If it works then we can assume something wrong with the copy paste.
# 14  
Old 11-19-2010
Quote:
Originally Posted by shekharjchandra
Code:
 
v_projectname=PROJ_X12
v_networkid=ddd77xER

Code:
 
nawk -F"|" -v var1="${v_projectname}" -v var2="${v_networkid}" ' {
fn=length($1)==4?"ADDR\_":"SLICE\_"
print > "ABS_" 
fn "_" var1 "_" var2 ".txt"
}' testfile.txt

Code:
print > "ABS_" 
fn "_" var1 "_" var2 ".txt"

Must be on one single line:
Code:
print > "ABS_" fn "_" var1 "_" var2 ".txt"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Splitting a text file into smaller files with awk, how to create a different name for each new file

Hello, I have some large text files that look like, putrescine Mrv1583 01041713302D 6 5 0 0 0 0 999 V2000 2.0928 -0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 5.6650 0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 3.5217 ... (3 Replies)
Discussion started by: LMHmedchem
3 Replies

2. Shell Programming and Scripting

Splitting the XML file into three different files

Hello Shell Guru's I have a requirement to split the source xml file into three different text file. And i need your valuable suggestion to finish this. Here is my source xml snippet, here i am using only one entry of <jms-system-resource>. There may be multiple entries in the source file. ... (5 Replies)
Discussion started by: Siv51427882
5 Replies

3. Shell Programming and Scripting

Splitting a file into 4 files containing the same name pattern

Hello, I have one file which is in size around 20 MB , wanted to split up into four files of each size of 5 MB. ABCD_XYZ_20130302223203.xml. Requirement is that to write script which should do as : first three file should be of size 5 MB each, the fourth one content should be in the last... (8 Replies)
Discussion started by: ajju
8 Replies

4. Shell Programming and Scripting

Splitting input CSV file into 3 files

Hi , I am receiving a CSV file that can vary in number of rows each time. I am supposed to split this file into 3 separate files like this: 1. create a file named 'File1.csv' that will contain first 3 rows of the input file 2. create file named 'File2.csv' that will contain last 3 rows of the... (7 Replies)
Discussion started by: kedrick
7 Replies

5. Shell Programming and Scripting

Splitting a file in to multiple files and passing each individual file to a command

I have an input file with contents like: MainFile.dat: 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 ... (4 Replies)
Discussion started by: rkrish
4 Replies

6. Shell Programming and Scripting

Splitting single file into n files

Hi all, I am new to scripting and I have a requirement we have source file as HEADER 01.10.2010 14:32:37 NAYA TA0022 TA0000 20000001;20060612;99991231;K4;02;3 20000008;20080624;99991231;K4;02;3 20000026;19840724;99991231;KK;01;3 20000027;19840724;99991231;KK;01;3... (6 Replies)
Discussion started by: srk409
6 Replies

7. UNIX for Advanced & Expert Users

Splitting a file into small files

Hi Folks, Please help me in solving the problem. I want to write script in order to split a file into small pieces and send it automatically through mail. Ex. The file name is CALM*.txt . It is around 50 MB. I want to split the file into 20 MB 2-3 smaller files and send (like uuencode) it... (6 Replies)
Discussion started by: piyushbhashkar
6 Replies

8. Shell Programming and Scripting

Data Splitting into two files from one file

I have a file as: I/P File: Ground Car 2009 Lib 2008 Lib 2003 Ground Car 2009 Ground Car 2003 Car 2005 Car 2003 Car 2005 Sita 2900 2006 Car 2007 I have to split the file into two: - one for names and second for years. O/p1 (Names): Ground Car (3 Replies)
Discussion started by: karumudi7
3 Replies

9. Shell Programming and Scripting

Splitting the Huge file into several files...

Hi I have to write a script to split the huge file into several pieces. The file columns is | pipe delimited. The data sample is as: 6625060|1420215|07308806|N|20100120|5572477081|+0002.79|+0000.00|0004|0001|......... (3 Replies)
Discussion started by: lakteja
3 Replies

10. Shell Programming and Scripting

Splitting files from one file

Hi, I have an input file like: 111 abcdefgh asdfghjk dfghjkl 222 aaaaaaa bbbbbb 333 djfhfgjktitjhgfkg 444 djdhfjkhfjkghjkfg hsbfjksdbhjkgherjklg fjkhfjklsahjgh fkrjkgnj I want to read this input file and make separate output files with the header as numric value like "111"... (9 Replies)
Discussion started by: saltysumi
9 Replies
Login or Register to Ask a Question