Sponsored Content
Top Forums Shell Programming and Scripting Adding a delimiter to a variable length file Post 302695257 by Mohankumar Venu on Sunday 2nd of September 2012 11:11:02 AM
Old 09-02-2012
Adding a delimiter to a variable length file

Hi,

I'm new to unix, i have a variable length file like below,
Code:
01|Test|Test1|Sample|
02|AA|BB|CC|DD|
03|AAA|BBB|CCC|DDD|EEE|RRR|TTT|SSS|YYY|

I need to make this as a fixed length file. Assume that i have 10 columns in the DAT file.

for ex: the first 01 record is having 4cols - there i need to add six "|" delimiter and for 02 record need to add five delimiters. Like wise i need to read few record number and add the delimiter correspondingly..

Can anyone help me on this regard.

your help would be much appreciated..

Thanks in advance,
Mohankumar.V

Last edited by radoulov; 09-02-2012 at 01:27 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies

2. Shell Programming and Scripting

adding delimiter to a fixed width file

Hi , I have a file : CSCH74000.00 CSCH74000.00 CSCH74100.00 CSCH74000.00 CSCH74100.00 CSCH74000.00 CSCH74000.00 CSCH74100.00 CSCH74100.00 CSCH74100.00 I have to put a delimiter( say comma) in between after 6th character: CSCH74,000.00 CSCH74,000.00 CSCH74,100.00 (2 Replies)
Discussion started by: sumeet
2 Replies

3. Shell Programming and Scripting

Pivot variable record length file and change delimiter

Hi experts. I got a file (500mb max) and need to pivot it (loading into ORCL) and change BLANK delimiter to PIPE |. Sometimes there are multipel BLANKS (as a particular value may be BLANK, or simply two BLANKS instead of one BLANK). thanks for your input! Cheers, Layout... (3 Replies)
Discussion started by: thomasr
3 Replies

4. UNIX for Dummies Questions & Answers

Convert a tab delimited/variable length file to fixed length file

Hi, all. I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file: 10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783 19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657 And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies

5. Shell Programming and Scripting

Adding a delimiter to a text file

Im writing a KSH script to read a simple text file and add a delimiter. Ive written the following script but it runs very slow. I initially used the cut command to substring the input record then switched to this version using awk to substring... both run too slow. Any ideas how to make this more... (2 Replies)
Discussion started by: lock
2 Replies

6. Shell Programming and Scripting

Make variable length record a fixed length

Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types: (H)eader Records (D)etail Records (T)railer Records The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies

7. Shell Programming and Scripting

Split variable length and variable format CSV file

Dear all, I have basic knowledge of Unix script and her I am trying to process variable length and variable format CSV file. The file length will depend on the numbers of Earnings/Deductions/Direct Deposits. And The format will depend on whether it is Earnings/Deductions or Direct Deposits... (2 Replies)
Discussion started by: chechun
2 Replies

8. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

9. Shell Programming and Scripting

Shell script to put delimiter for a no delimiter variable length text file

Hi, I have a No Delimiter variable length text file with following schema - Column Name Data length Firstname 5 Lastname 5 age 3 phoneno1 10 phoneno2 10 phoneno3 10 sample data - ... (16 Replies)
Discussion started by: Gaurav Martha
16 Replies

10. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies
GFS_PIO_READDELIM(3)													      GFS_PIO_READDELIM(3)

NAME
gfs_pio_readdelim - read one record SYNOPSIS
#include <gfarm/gfarm.h> char *gfs_pio_readdelim (GFS_File f, char **bufp, size_t *sizep, size_t *lenp, char *delimiter, size_t delimlen); DESCRIPTION
gfs_pio_readdelim() works like gfs_pio_readline(), except a delimiter of input records is not always newline, and can be specified. This function reads one record from the file specified by the parameter gf, by using the parameter delimiter as the delimiter of the input records. You can include '' character in the delimiter, So, you have to specify the length of the delimiter by the parameter delimlen. If parameter delimiter is NULL, this function reads entire file as one record. Otherwise, and if the parameter delimlen is 0, this func- tion treats two or more consecutive empty lines (/ +/ in a regular expression) as the input delimiter. This feature is derived from INPUT_RECORD_SEPARATOR in perl language. Parameter bufp specifies an address of a pointer variable initialzed by NULL at first. gfs_pio_readdelim() allocates a buffer for I/O dynamically, and stores the address of the buffer to this variable pointed by bufp. Parameter sizep specifies an address of a size_t vari- able initialized by 0. This size_t variable is used to record the size of the buffer. Or, you can specify a buffer allocated by malloc(3) in the variable pointed by the parameter bufp. In this case, you have to specify the size of the allocated buffer by the parameter sizep. If the length of the record exceeds the size of the buffer, the buffer will be automatically realloc(3)ed, and the variable pointed by bufp and sizep will be updated respectively. Note that you are responsible to free(3) this buffer. This function returns the length of the record to a variable pointed by the parameter lenp. This length includes the length of the record delimiter. This function doesn't remove the delimiter at the end of records. Also, despite that you can use the value returned by the variable pointed by lenp, this function always appends ' character at the end of records. If the file reaches its end, the length of the result record becomes 0. gfs_pio_readdelim(f, bufp, sizep, lenp, " ", 1) is equivalent to gfs_pio_readline() function. RETURN VALUES
NULL The function terminated successfully. GFARM_ERR_NO_MEMORY Insufficient memory was available. Note that you need to free(3) the buffer pointed by the parameter bufp Others An error except the above occurred. The reason is shown by its pointed strings. EXAMPLES
EXAMPLE OF GFS_PIO_READDELIM FUNCTION #include <stdio.h> #include <stdlib.h> #include <string.h> #include <gfarm/gfarm.h> int main(int argc, char **argv) { char *e; GFS_File gf; size_t bufsize = 0, delimlen = 1, len; char *buffer = NULL, *delim = " "; e = gfarm_initialize(&argc, &argv); if (e != NULL) { fprintf(stderr, "gfarm_initialize: %s ", e); return (EXIT_FAILURE); } while ((c = getopt(argc, argv, "d:D")) != -1) { switch (c) { case 'd': delim = optarg; delimlen = strlen(optarg); break; case 'D': delim = NULL; delimlen = 0; break; case '?': default: fprintf(stderr, "invalid option: %c ", c); return (EXIT_FAILURE); } } if (optind >= argc) { fprintf(stderr, "missing gfarm filename "); return (EXIT_FAILURE); } e = gfs_pio_open(argv[optind], GFARM_FILE_RDONLY, &gf); if (e != NULL) { fprintf(stderr, "%s: %s ", argv[optind], e); return (EXIT_FAILURE); } e = gfs_pio_set_view_global(gf, 0); if (e != NULL) { fprintf(stderr, "%s: gfs_pio_set_view_global: %s ", argv[optind], e); return (EXIT_FAILURE); } while ((e = gfs_pio_readdelim(gf, &buffer, &bufsize, &len, delim, delimlen)) == NULL && len > 0) { printf("<%6d/%6d >%s", len, bufsize, buffer); } if (buffer != NULL) free(buffer); if (e != NULL) { fprintf(stderr, "ERROR: %s ", e); return (EXIT_FAILURE); } e = gfs_pio_close(gf); if (e != NULL) { fprintf(stderr, "gfs_pio_close: %s ", e); return (EXIT_FAILURE); } e = gfarm_terminate(); if (e != NULL) { fprintf(stderr, "gfarm_initialize: %s ", e); return (EXIT_FAILURE); } return (EXIT_SUCCESS); } SEE ALSO
gfs_pio_open(3), gfs_pio_getline(3), gfs_pio_gets(3), gfs_pio_readline(3) Gfarm 13 May 2004 GFS_PIO_READDELIM(3)
All times are GMT -4. The time now is 07:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy