Concatenate some of the rows...


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Concatenate some of the rows...
# 1  
Old 09-09-2009
Concatenate some of the rows...

i have a file as below and i need to load it into oracle. The problem is, some of the rows are in 2 lines.

Code:
 
123456_PosWlist -----            -----            IN 0/0
123456_PosWListRpt   -----            -----            IN 0/0
123456_PosWListCSV
                      -----            -----            IN 0/0
123456_PosWlist_S1CSVBox   -----            -----            IN 0/0
123456_PosWList_S1CSV    -----            -----            IN 0/0
123456_PosWList_S1PubCSV -----            -----            IN 0/0

for example,
Code:
123456_PosWListCSV

is not continues... after name all other information are in next line...
Can someone help me on how to concanate this 2 rows... I have nearly 500 rows in the file out of it 50 rows have this problem...
# 2  
Old 09-09-2009
if you're not *too* bothered about whitespace:

Code:
#   tr -s " " "\n"  < infile  | paste - - - - -
123456_PosWlist -----   -----   IN      0/0
123456_PosWListRpt      -----   -----   IN      0/0
123456_PosWListCSV      -----   -----   IN      0/0
123456_PosWlist_S1CSVBox        -----   -----   IN      0/0
123456_PosWList_S1CSV   -----   -----   IN      0/0
123456_PosWList_S1PubCSV        -----   -----   IN      0/0

HTH
# 3  
Old 09-10-2009
Code:
sed -n '/^[0-9][0-9]*_Pos/{
1{h;}
1!{
$!{x;s/\n/ /g;p;}
${x;s/\n/ /g;p;x;p;}
}
}
/^[0-9][0-9]*_Pos/!{
$!{H;}
${H;x;s/\n/ /g;p;}
}' yourfile

# 4  
Old 09-10-2009
an awk verison :

Code:
awk 'NF==1 {p=$0;next} {$0=p$0;print;p=""}' file_name.txt

# 5  
Old 09-14-2009
Hi Panyam...

awk version shows following error...

Code:
bash-2.03$ more aaa.txt
  35111_RetrievalAppendXmitTrig
                             -----            -----            OI 0/0

bash-2.03$ awk 'NF==1 {p=$0;next} {$0=p$0;print;p=""}' aaa.txt
awk: can't set $0
 record number 2

# 6  
Old 09-14-2009
Use gawk/nawk. The same worked for me.
# 7  
Old 09-15-2009
Hi Panyam,

It worrs with nawk. But it works only if the file contains one row. If i have data as below.

Code:
123456_PosWListCSV
                      -----            -----            IN 0/0
123456_PosWlist_S1CSVBox   -----            -----            IN 0/0
123456_PosWList_S1PubCSV 
                      06/17/2008 13:25            06/17/2008 13:47            IN 0/0

The above awk command is not working.

It should come like...

Code:
123456_PosWListCSV   -----            -----            IN 0/0
123456_PosWlist_S1CSVBox   -----            -----            IN 0/0
123456_PosWList_S1PubCSV  06/17/2008 13:25            06/17/2008 13:47            IN 0/0

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Concatenate rows and redefine range

I'm trying to find a way to concatenate consecutive rows (key is column $1 and $2) if column $5 an $6 are integers and redefine ranges in columns $3&$4 and $5&$6 Unfortunately I'm still learning the very basics so I cannot figure a way of doing this with awk. Input file 15 30 21 21 25.0... (11 Replies)
Discussion started by: alex2005
11 Replies

2. Shell Programming and Scripting

Concatenate broken rows

I need to concatenate the rows that are broken (because of carriage return and line feed) in unix. Input 123|456|789|"" 987|786|"GRT "|"" 3455|896|654|456|"" 457|234|"RT"|"PR TY"|"" Output 123|456|789|"" 987|786|"GRT"|"" 3455|896|654|456|"" 457|234|"RT"|"PRTY"|"" (16 Replies)
Discussion started by: meet_calramz
16 Replies

3. Shell Programming and Scripting

Moving or copying first rows and last rows into another file

Hi I would like to move the first 1000 rows of my file into an output file and then move the last 1000 rows into another output file. Any help would be great Thanks (6 Replies)
Discussion started by: kylle345
6 Replies

4. UNIX for Dummies Questions & Answers

merging rows into new file based on rows and first column

I have 2 files, file01= 7 columns, row unknown (but few) file02= 7 columns, row unknown (but many) now I want to create an output with the first field that is shared in both of them and then subtract the results from the rest of the fields and print there e.g. file 01 James|0|50|25|10|50|30... (1 Reply)
Discussion started by: A-V
1 Replies

5. Shell Programming and Scripting

Need help to read rows from one file and concatenate to another

Hi guys; TBH I am an absolute novice, when it comes to scripting; I do have an idea of the basic commands... Here is my problem; I have a flatfile 'A' containing a single column with multiple rows. I have to create a script which will use 'A' as input and then output a string in in the... (6 Replies)
Discussion started by: carlos_anubis
6 Replies

6. UNIX for Dummies Questions & Answers

Read rows from source file and concatenate output

Hi guys; TBH I am an absolute novice, when it comes to scripting; I do have an idea of the basic commands... Here is my problem; I have a flatfile 'A' containing a single column with multiple rows. I have to create a script which will use 'A' as input and then output a string in in the... (0 Replies)
Discussion started by: carlos_anubis
0 Replies

7. Shell Programming and Scripting

Deleting specific rows in large files having rows greater than 100000

Hi Guys, I need help in modifying a large text file containing more than 1-2 lakh rows of data using unix commands. I am quite new to the unix language the text file contains data in a pipe delimited format sdfsdfs sdfsdfsd START_ROW sdfsd|sdfsdfsd|sdfsdfasdf|sdfsadf|sdfasdf... (9 Replies)
Discussion started by: manish2009
9 Replies

8. Shell Programming and Scripting

concatenate two files with different No of rows

need a shell which perform following function file 1 ( every time new data comes) 1212 2323 3434 4545 5656 . . . . file 2 (fixed line) update bc_tbl set aix=data , bix=back where cix=U and serial=; now when i execute shell it will concatinate file 1, file 2 & make file 3 as... (3 Replies)
Discussion started by: The_Archer
3 Replies

9. Shell Programming and Scripting

Concatenate rows in to 2 files

I have 2 files FILEA 1232342 1232342 2344767 4576823 2325642 FILEB 3472328 2347248 1237123 1232344 8787890 I want the output to go into a 3rd file and look like: FILEC 1232342 3472328 (1 Reply)
Discussion started by: unxusr123
1 Replies

10. Shell Programming and Scripting

Concatenate 2 rows into 1 row

I need to search a file for two values (valueA & valueB). ValueA will be on a different row than valueB, and concatenate the two together on the same row of my output. Example: search input file for strings "node" and "OS", combine the two results into one row input node A text text OS... (4 Replies)
Discussion started by: indianadoug
4 Replies
Login or Register to Ask a Question