Converting Multiple rows to Single Row using unix commands


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting Multiple rows to Single Row using unix commands
# 1  
Old 07-13-2011
Question Converting Multiple rows to Single Row using unix commands

Can somebody help me in solving this..

Input data is like
Code:
0 A
1 B
2 C
3 D
0 A1
1 B1
2 C1
3 D1
0 A2
1 B2
2 C2
3 D2

Output should be like
Code:
A B C D
A1 B1 C1 D1
A2 B2 C2 D2

Thanks in Advance

Last edited by Franklin52; 07-14-2011 at 06:05 PM.. Reason: Please use code tags for data and code samples, thank you
# 2  
Old 07-13-2011
Code:
awk '{print $2}' file | paste -d" " - - - -

# 3  
Old 07-13-2011
Code:
sed -n 's/[0-3]//;s/ //;p' inputfile | awk -v ORS= '{print $0" ";if(NR%4==0){print "\n"}}'

# 4  
Old 07-14-2011
Hi Itomuno, the command is working fine.Thanks a lot.....Is it possible to make it more generic like
INPUT:
Code:
0   A
1 B
2 C
-  -
-  -
-  -
N XX
0 A1
1 B1
2 C1
-  -
-  -
-  -
N XX1
0  A2
1  B2
2  C2
3  D3
-   -
-   -
N XX2


OUTPUT :
Code:
A  B  C  D  - - - -XX
A1 B1 C1 D1- - - -XX1
A2 B2 C2 D2    XX2
- - - - - - - - - - -  - - - - -
- - - - - -  - - - - - - - - - -

Where N can be any value

Last edited by Franklin52; 07-14-2011 at 06:06 PM.. Reason: Please use code tags for data and code samples, thank you
# 5  
Old 07-14-2011
This will do it for any "N" and even if some lines are missing between 0+1 and N:
Code:
#!/usr/bin/ksh
mOutLine=""
while read mSeq mValue; do
  if [[ "${mSeq}" = "0" ]]; then
    if [[ "${mOutLine}" != "" ]]; then
      echo ${mOutLine}
      mOutLine=""
    fi
  fi
  mOutLine=${mOutLine}' '${mValue}
done < input_file
if [[ "${mOutLine}" != "" ]]; then
  echo ${mOutLine}
fi

# 6  
Old 07-15-2011
Hi Shell_Life, after running your script, I am getting some error like
"[[: not found". I am not understanding what it is...Can you please solve this
# 7  
Old 07-15-2011
What shell are you running it?

The shell was written to work with "ksh" as in the first line.

Type: "which ksh"
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Splitting single row into multiple rows based on for every 10 digits of last field of the row

Hi ALL, We have requirement in a file, i have multiple rows. Example below: Input file rows 01,1,102319,0,0,70,26,U,1,331,000000113200000011920000001212 01,1,102319,0,1,80,20,U,1,241,00000059420000006021 I need my output file should be as mentioned below. Last field should split for... (4 Replies)
Discussion started by: kotra
4 Replies

2. Shell Programming and Scripting

Converting Single Column into Multiple rows

Hi .. anyone can you help me ? i need to convert text below into multiple columns interface; GigabitEthernet0/0/0/0 description; TRUNK_PE-D2-JT2-VPN_Gi0/0/0/0_TO_ME4-A-JKT-JT_4/1/1_1G mtu 9212 negotiation auto interface; GigabitEthernet0/0/0/0.11 description; tes encapsulation;... (1 Reply)
Discussion started by: mad3linux
1 Replies

3. Shell Programming and Scripting

Converting a single row to multiple rows

Hi, I want to convert a single row values to multiple rows, but the no. of rows are not fixed. For example, I have a row as below abc-def-lmn-mno-xyz out put should be get abc get def get lmn get xyz (4 Replies)
Discussion started by: Suneel Mekala
4 Replies

4. Shell Programming and Scripting

Converting Single Column into Multiple rows, but with strings to specific tab column

Dear fellows, I need your help. I'm trying to write a script to convert a single column into multiple rows. But it need to recognize the beginning of the string and set it to its specific Column number. Each Line (loop) begins with digit (RANGE). At this moment it's kind of working, but it... (6 Replies)
Discussion started by: AK47
6 Replies

5. Shell Programming and Scripting

Shell Code required -Output in Multiple Rows to be in single row separated by Commas -

Hola Greetings Experts , I have records spreaded across multiple lines. in attached log.txt i want output to be in 1 line like this below Atached as Output.txt. In brief Output related to 1 line is spreaded across multiple row I wanted it to be in 1 row . Please opem the file in notepad... (4 Replies)
Discussion started by: manishK
4 Replies

6. Shell Programming and Scripting

How to merge multiple rows into single row if first column matches ?

Hi, Can anyone suggest quick way to get desired output? Sample input file content: A 12 9 A -0.3 2.3 B 1.0 -4 C 34 1000 C -111 900 C 99 0.09 Output required: A 12 9 -0.3 2.3 B 1.0 -4 C 34 1000 -111 900 99 0.09 Thanks (3 Replies)
Discussion started by: cbm_000
3 Replies

7. Shell Programming and Scripting

Combining multiple rows in single row based on certain condition using awk or sed

Hi, I'm using AIX(ksh shell). > cat temp.txt "a","b",0 "c",bc",0 "a1","b1",0 "cc","cb",1 "cc","b2",1 "bb","bc",2 I want the output as: "a","b","c","bc","a1","b1" "cc","cb","cc","b2" "bb","bc" I want to combine multiple lines into single line where third column is same. Is... (1 Reply)
Discussion started by: samuelray
1 Replies

8. UNIX for Advanced & Expert Users

Converting rows to a single row

Hi all I have a file as below : Development System User Production i want to convert the file to below format: "Development","System","User","Production" Is it possible with UNIX ? if so can you please give me some direction on it ? Thanks, Satya Use code tags please, ty. (10 Replies)
Discussion started by: satyaranjon
10 Replies

9. Shell Programming and Scripting

Running multiple unix commands in a single script

Hi, I would like to write a script with include more than 6 unix commands. my script like below: echo " script started" ls -ld bdf | grep "rama" tail -10 log.txt ... .. ... now, i want to run above unix commands one by one. example: first the ls -ld command will be... (3 Replies)
Discussion started by: koti_rama
3 Replies

10. Shell Programming and Scripting

Converting Single Column into Multiple rows

i have single column which is starting with same string(many number of rows) i have to convert each into a single row.how can i do that? laknar std mes 23 55 laknar isd phone no address amount 99 I have to convert above like below. laknar|std|mes|23|55 laknar|isd|phone... (3 Replies)
Discussion started by: laknar
3 Replies
Login or Register to Ask a Question