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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Splitting single row into multiple rows based on for every 10 digits of last field of the row
# 1  
Old 10-14-2016
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
Code:
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 every 10 digits.

Output file rows
Code:
01,1,102319,0,0,70,26,U,1,331,0000001132
01,1,102319,0,0,70,26,U,1,331,0000001192
01,1,102319,0,0,70,26,U,1,331,0000001212 
01,1,102319,0,1,80,20,U,1,241,0000005942 
01,1,102319,0,1,80,20,U,1,241,0000006021

Can you please share me code how we can achive this thru unix

Thanks,
Kalyan

Last edited by Don Cragun; 10-14-2016 at 06:21 PM.. Reason: Add CODE tags.
# 2  
Old 10-14-2016
What operating system and shell are you using?

What have you tried to solve this problem on your own?
# 3  
Old 10-14-2016
Hi,
We are using AIX and shell is KSH.

Thanks,
Kalyan.
# 4  
Old 10-14-2016
It always helps if you show us what you have tried on your own so we have a better understanding of what you're trying to do and what kind of help you need. The following awk script seems to do what you want (but it doesn't add a space to the end of the 3rd and 4th rows of your output that you included in the output you said you want):
Code:
awk '
BEGIN {	FS = OFS = ","
}
{	d = $NF
	for(i = 1; i <= length(d); i += 10) {
		$NF = substr(d, i, 10)
		print
	}
}' Input

which, if the file named Input contains the example input rows you provided, produces the output:
Code:
01,1,102319,0,0,70,26,U,1,331,0000001132
01,1,102319,0,0,70,26,U,1,331,0000001192
01,1,102319,0,0,70,26,U,1,331,0000001212
01,1,102319,0,1,80,20,U,1,241,0000005942
01,1,102319,0,1,80,20,U,1,241,0000006021

If someone else wants to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk or nawk.
# 5  
Old 10-14-2016
Thanks lot Don. It is working for me... now.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Create multiple files from single file based on row separator

Hello , Can anyone please help me to solve the below - Input.txt source table abc col1 char col2 number source table bcd col1 date col2 char output should be 2 files based on the row separator "source table" abc.txt col1 char (6 Replies)
Discussion started by: Pratik4891
6 Replies

2. 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

3. 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

4. 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

5. Shell Programming and Scripting

Subtracting each row from the first row in a single column file using awk

Hi Friends, I have a single column data like below. 1 2 3 4 5 I need the output like below. 0 1 2 3 4 where each row (including first row) subtracting from first row and the result should print below like the way shown in output file. Thanks Sid (11 Replies)
Discussion started by: ks_reddy
11 Replies

6. Shell Programming and Scripting

Converting Multiple rows to Single Row using unix commands

Can somebody help me in solving this.. Input data is like 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 A B C D A1 B1 C1 D1 A2 B2 C2 D2 (7 Replies)
Discussion started by: Mahantesh Patil
7 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. Shell Programming and Scripting

Splitting data from one row as multiple columns

Hi I have a file containing some data as follows: 11-17-2010:13:26 64 4 516414 1392258 11-17-2010:13:26 128 4 586868 695603 11-17-2010:13:26 256 4 474937 1642294 11-17-2010:13:32 64 4 378715 1357066 11-17-2010:13:32 128 4 597981 1684006 ... (17 Replies)
Discussion started by: annazpereira
17 Replies

9. 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

10. UNIX for Advanced & Expert Users

convert rows to single row

Hi I want to convert multiple rows ro single row ,I have tried with below one but I am not getting what I am expecting.Please any idea a.txt conn1=stg conn2=dev path=\xxx\a1.txt fre=a conn1=stg conn2=dev path=\xxx\a2.txt freq=a awk '/a/{ORS=" "}{print}END{print "\n"}'... (5 Replies)
Discussion started by: akil
5 Replies
Login or Register to Ask a Question

Featured Tech Videos