Sponsored Content
Top Forums Shell Programming and Scripting How to split one record to multiple records? Post 302923460 by RudiC on Monday 3rd of November 2014 05:16:26 AM
Old 11-03-2014
You were almost there. A small adaption to your code snippet yields the desired result:
Code:
awk '{n=split($1,s,"|");for (i=1;i<=n;i++) {if (s[i]) {$1=s[i];print }}}' OFS="\t" file
store_id    Age_21_25    Age_26_35    Age_36_45    Age_46_55    Age_56_65
1000401164    8.116937952    41.8758236    24.30776271    11.95505201    8.471244693
689017    8.116937952    41.8758236    24.30776271    11.95505201    8.471244693
1000488334    7.114212034    57.5707557    17.80863244    8.561672677    4.061502426
1084206    7.114212034    57.5707557    17.80863244    8.561672677    4.061502426
1000774612    6.4755786    63.15054848    15.40059325    7.036513624    5.047765246
1125312    6.4755786    63.15054848    15.40059325    7.036513624    5.047765246
1000979214    6.181663241    44.56080063    21.15212533    13.05156994    9.326079288
1190013    6.181663241    44.56080063    21.15212533    13.05156994    9.326079288
1081832    6.810393524    39.3111534    23.87784902    15.98099337    9.4109512
2000043615    6.809158988    51.58667473    19.64147383    9.620136197    7.546592693
970276    6.809158988    51.58667473    19.64147383    9.620136197    7.546592693
2000136868    9.962407379    37.94331719    19.7381623    14.41566889    11.06586732
8065019    9.962407379    37.94331719    19.7381623    14.41566889    11.06586732
2000186586    7.13703001    38.0685379    23.06179155    14.16599508    10.76015759
8075300    7.13703001    38.0685379    23.06179155    14.16599508    10.76015759
123456    7.13703001    38.0685379    23.06179155    14.16599508    10.76015759

This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to split multiple records file in n files

Hello, Each record has a lenght of 7 characters I have 2 types of records 010 and 011 There is no character of end of line. For example my file is like that : 010hello 010bonjour011both 011sisters I would like to have 2 files 010.txt (2 records) hello bonjour and ... (1 Reply)
Discussion started by: jeuffeu
1 Replies

2. Shell Programming and Scripting

Parsing record into multiple records in Shell Script

Hi, I am trying to parse a very long record in a text file into multiple records by checking ADD, DELETE, or MODIFY field value in a shell script. Input # File name xyz.txt ADD|N000|8015662|DELETE|N001|9915662|MODIFY|N999|85678 Output ADD|N000|8015662| DELETE|N001|9915662|... (8 Replies)
Discussion started by: naveed
8 Replies

3. Shell Programming and Scripting

Multiple records based on ';' in the record

Hi All, I have a *.csv files in a die /pro/lif/dow, (pipe delimiter file), these files are having 8 columns and 6 column(CDR_LOGIC) records are populated as below, I need to incorporate the below logic in all the *.csv files. 11||:ColumnA||:ColumnB 123||:ColumnA IIF(:ColumnA = :ColumnC then... (6 Replies)
Discussion started by: shruthidwh
6 Replies

4. Shell Programming and Scripting

Split a single record to multiple records & add folder name to each line

Hi Gurus, I need to cut single record in the file(asdf) to multile records based on the number of bytes..(44 characters). So every record will have 44 characters. All the records should be in the same file..to each of these lines I need to add the folder(<date>) name. I have a dir. in which... (20 Replies)
Discussion started by: ram2581
20 Replies

5. Shell Programming and Scripting

reformat one record from two records

I have not get much answer/solution for the posting. Here I break down the question and hope to get some help. 1. How can I use AWK to read in two records at the same time and keep loop to next two when the condition is meet? position 1-10 --> Unique to identity whether... (4 Replies)
Discussion started by: menglm
4 Replies

6. UNIX for Dummies Questions & Answers

Split single record to multiple records

Hi Friends, source .... col1,col2,col3 a,b,1;2;3 here colom delimeter is comma(,). here we dont know what is the max length of col3 means now we have 1;2;3 next time i will receive 1;2;3;4;5;etc... required output .............. col1,col2,col3 a,b,1 a,b,2 a,b,3 please give me... (5 Replies)
Discussion started by: bab.galary
5 Replies

7. Shell Programming and Scripting

Split records into multiple records

Hi All, I am trying to split a record into multiple records based on a value. Input.txt "A",1,0,10 "B",2,0,10,15,20 "C",3,11,14,16,19,21,23 "D",1,0,5 My desired output is: "A",1,0,10 "B",2,0,10 "B",2,15,20 "C",3,11,14 "C",3,16,19 "C",3,21,23 (4 Replies)
Discussion started by: kmsekhar
4 Replies

8. Shell Programming and Scripting

Splitting record into multiple records by appending values from an input field (AWK)

Hello, For the input file, I am trying to split those records which have multiple values seperated by '|' in the last input field, into multiple records and each record corresponds to the common input fields + one of the value from the last field. I was trying with an example on this forum... (4 Replies)
Discussion started by: imtiaz99
4 Replies

9. Shell Programming and Scripting

Multiple Records from 1 Record

I need to make one record to multiple records based on occurence column in the record and change the date.For example below first record has 5 ,so need to create 5 records from one and change the date to 5 months.Occurence can be any number. I am unable to come with a script.Can some one help ... (5 Replies)
Discussion started by: traininfa
5 Replies

10. Shell Programming and Scripting

Split a large file in n records and skip a particular record

Hello All, I have a large file, more than 50,000 lines, and I want to split it in even 5000 records. Which I can do using sed '1d;$d;' <filename> | awk 'NR%5000==1{x="F"++i;}{print > x}'Now I need to add one more condition that is not to break the file at 5000th record if the 5000th record... (20 Replies)
Discussion started by: ibmtech
20 Replies
RLAM(1) 						      General Commands Manual							   RLAM(1)

NAME
rlam - laminate records from multiple files SYNOPSIS
rlam [ -tS ][ -u ][ -iaN | -ifN | -idN | -iiN | -iwN | -ibN ] input1 input2 .. DESCRIPTION
Rlam simply joins records (or lines) from multiple inputs, separating them with the given string (TAB by default). Different separators may be given for different files by specifying additional -t options in between each file name. Note that there is no space between this option and its argument. If none of the input files uses an ASCII separator, then no end-of-line character will be printed, either. An input is either a stream or a command. Commands are given in quotes, and begin with an exclamantion point ('!'). If the inputs do not have the same number of lines, then shorter files will stop contributing to the output as they run out. The -ia option may be used to specify ASCII input (the default), or the -if option may be used to indicated binary IEEE 32-bit floats on input. Similarly, the -id and -ii options may be used to indicate binary 64-bit doubles or integer words, respectively. The -iw option specifies 2-byte short words, and the -ib option specifies bytes. If a number is immediately follows any of these options, then it indi- cates that multiple such values are expected for each record. For example, -if3 indicates three floats per input record for the next named input. In the case of the -ia option, no number indicates one line per input record, and numbers greater than zero indicate that many characters exactly per record. For binary input formts, no number implies one value per record. For anything other than EOL-separated input, the default tab separator is reset to the empty string. A hyphen ('-') by itself can be used to indicate the standard input, and may appear multiple times. The -u option forces output after each record (i.e., one run through inputs). EXAMPLE
To join files output1 and output2, separated by a comma: rlam -t, output1 output2 To join a file with line numbers (starting at 0) and its reverse: cnt `wc -l < lam.c` | rlam - -t: lam.c -t '!tail -r lam.c' To join four data files, each having three doubles per record: rlam -id3 file1.dbl file2.dbl file3.dbl file4.dbl > combined.dbl AUTHOR
Greg Ward SEE ALSO
cnt(1), histo(1), neaten(1), rcalc(1), tabfunc(1), total(1) RADIANCE
7/8/97 RLAM(1)
All times are GMT -4. The time now is 01:30 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy