Sponsored Content
Top Forums Shell Programming and Scripting Randomly inserting extra columns into csv file Post 302855667 by Lokesha on Friday 20th of September 2013 01:53:34 PM
Old 09-20-2013
This solution worked. Thanks a lot.

Smilie
Quote:
Originally Posted by Chubler_XL
Perhaps perl is they way to go if your on AIX or Solaris:

Code:
#!/usr/bin/perl
use Time::Local 'timelocal';
use POSIX;

my $year, $month, $day;
my $sd, $ed;
$sd=1167573600;
$ed=1577800800;

while (my $ln = <STDIN>) {
  if($ln =~ /([^;]+;){4,}/) {
    my @values = split(/\;/, $ln);
    $values[3] = $values[3] .
       ";" . strftime("%Y%m%d", localtime(rand()*($d-$sd)+$sd)) .
       ";" . strftime("%Y%m%d", localtime(rand()*($d-$sd)+$sd)) .
       ";" . strftime("%Y%m%d", localtime(rand()*($d-$sd)+$sd));
    $values[5]= $values[5] . ";" . (rand()>0.5)?"Y":"N";
    print $values[0];
    for($i=1 ; $i < scalar(@values); $i++ ) {
        printf ";$values[$i]"
    }
  } else {
      print $ln;
  }
}

---------- Post updated at 11:23 PM ---------- Previous update was at 11:22 PM ----------

This solution worked. Thanks a lot. great help!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

use awk to read randomly located columns in an excel file

Hi, I have an excel file that have a random count of columns/fields and what im trying to do is to only retrieve all the rows under 2 specific field headers. I can use the usually command for awk which is awk 'print{ $1 $2}' > output.txt, but the location of the 2 specific field headers is... (9 Replies)
Discussion started by: mdap
9 Replies

2. Shell Programming and Scripting

Inserting 2 columns from a file to another with nawk

Hello all, I have these 2 files File1 123 100 456 200 789 300 File2 |1|2|3||4|5||6| |1|2|3||4|5||6| |1|2|3||4|5||6| I need an output like : |1|2|3|123|4|5|100|6| |1|2|3|456|4|5|200|6| |1|2|3|789|4|5|300|6| (3 Replies)
Discussion started by: rany1
3 Replies

3. Shell Programming and Scripting

Ascii Mode appending extra records to csv file

I am relatively new to this forum and Unix scripting. ksh script: part 1 :will call a PL\SQL program will create 3 CSV file at the unix directory. part 2 : will sftp the files to the EFT server. Once the EFT server receives these file , it will transfer them to a shared windows folders. ... (3 Replies)
Discussion started by: developerpa
3 Replies

4. Shell Programming and Scripting

Adding Extra Commas to a CSV file

Trying in this forum. Not sure if it is permitted.... but in need of help. Please find the requirements in the below link. https://www.unix.com/unix-dummies-questions-answers/191503-add-extra-commas-csv-file-2.html#post302665179 Thanks in Advance. (1 Reply)
Discussion started by: chillblue
1 Replies

5. UNIX for Dummies Questions & Answers

To Add extra commas to a CSV file using 2 files...

Hi , Based on my previous requirement the code works fine for comma as delimiter. Now my Req is widened up a bit .. There will be two set of files .. one with comma as delimiter and other with semi-colon ; as delimiter. Second Sample file. With Double Quotes (Semi-Colon... (1 Reply)
Discussion started by: chillblue
1 Replies

6. UNIX for Dummies Questions & Answers

To Add extra commas to a CSV file.

Hi All, I got this requirement to process a complex CSV file. Eg File. Line 1: Name:,XYz Line 2: Age:,15 Line 3: Grade:,7 Line 4: Line 5: English, Maths, Science,Spanish Line 6:10,11,13,14 As you can see the maximum column is 4 . The file i need to make is Line 1: Name:,XYz,,... (12 Replies)
Discussion started by: chillblue
12 Replies

7. Shell Programming and Scripting

Inserting new fields to a csv file

hi I have a csv file with few rows > cat job_stat 1,jobname1,somthing,somthing 2,jobname2,somthing,somthing 3,jobname3,somthing,somthing 4,jobname4,somthing,somthing I want to add few columns after the 2nd column and then append rest of the columns after the 3rd newly added... (3 Replies)
Discussion started by: midhun19
3 Replies

8. Shell Programming and Scripting

Inserting blank columns in already present CSV file

Hi, i have a csv file which have headers and values of it like below : headers --> CI Ref SerialNumber LastScanDate values --> VMware-42,VMware-42,Tue, 20 May 2014 11:03:44 +0000 i want to have a above csv in below format : headers --> CI Name CI Description CI Ref... (6 Replies)
Discussion started by: omkar.jadhav
6 Replies

9. Shell Programming and Scripting

Match columns from two csv files and update field in one of the csv file

Hi, I have a file of csv data, which looks like this: file1: 1AA,LGV_PONCEY_LES_ATHEE,1,\N,1,00020460E1,0,\N,\N,\N,\N,2,00.22335321,0.00466628 2BB,LES_POUGES_ASF,\N,200,200,00006298G1,0,\N,\N,\N,\N,1,00.30887539,0.00050312... (10 Replies)
Discussion started by: djoseph
10 Replies

10. Shell Programming and Scripting

Need to Insert three extra columns in csv file

Hello Experts, I got a requirement i have a input file which am getting from different source,Now i want to add extra 3 columns to this file like BASE,ACTUAL and DATE. Input File Looks like QUAL CHGE TYP LAW COM1 COM2 A 1 X SED HO ASE B 3 Z CDE SE ... (5 Replies)
Discussion started by: ahmed.vaghar
5 Replies
Time::y2038(3pm)					User Contributed Perl Documentation					  Time::y2038(3pm)

NAME
Time::y2038 - Versions of Perl's time functions which work beyond 2038 SYNOPSIS
use Time::y2038; print scalar gmtime 2**52; # Sat Dec 6 03:48:16 142715360 DESCRIPTION
On many computers, Perl's time functions will not work past the year 2038. This is a design fault in the underlying C libraries Perl uses. Time::y2038 provides replacements for those functions which will work accurately +/1 142 million years. This only imports the functions into your namespace. To replace it everywhere, see Time::y2038::Everywhere. Replaces the following functions: gmtime() See "gmtime" in perlfunc for details. localtime() See "localtime" in perlfunc for details. timegm() my $time = timegm($sec, $min, $hour, $month_day, $month, $year); The inverse of "gmtime()", takes a date and returns the coorsponding $time (number of seconds since Midnight, January 1st, 1970 GMT). All values are the same as "gmtime()" so $month is 0..11 (January is 0) and the $year is years since 1900 (2008 is 108). # June 4, 1906 03:02:01 GMT my $time = timegm(1, 2, 3, 4, 5, 6); timegm() can take two additional arguments which are always ignored. This lets you feed the results from gmtime() back into timegm() without having to strip the arguments off. The following is always true: timegm(gmtime($time)) == $time; timelocal() my $time = timelocal($sec, $min, $hour, $mday, $month, $year); my $time = timelocal($sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst); Like "timegm()", but interprets the date in the current time zone. "timelocal()" will normally figure out if daylight savings time is in effect, but if $isdst is given this will override that check. This is mostly useful to resolve ambiguous times around "fall back" when the hour between 1am and 2am occurs twice. # Sun Nov 4 00:59:59 2007 print timelocal(59, 59, 0, 4, 10, 107); # 1194163199 # Sun Nov 4 01:00:00 2007 DST, one second later print timelocal(0, 0, 1, 4, 10, 107, undef, undef, 1); # 1194163200 # Sun Nov 4 01:00:00 2007 no DST, one hour later print timelocal(0, 0, 1, 4, 10, 107, undef, undef, 0); # 1194166800 $wday and $yday are ignored. They are only there for compatibility with the return value of "localtime()". LIMITATIONS
The safe range of times is +/ 2**52 (about 142 million years). Although the underlying time library can handle times from -2**63 to 2**63-1 (about +/- 292 billion years) Perl uses floating point numbers internally and so accuracy degrates after 2**52. BUGS &; FEEDBACK See http://rt.cpan.org/Dist/Display.html?Queue=Time-y2038 to report and view bugs. If you like the module, please drop the author an email. The latest version of this module can be found at http://y2038.googlecode.com/ and the repository is at http://y2038.googlecode.com/svn/trunk/ in perl/Time-y2038. You have to check out the whole repository because there are symlinks. AUTHOR
Michael G Schwern <schwern@pobox.com> LICENSE &; COPYRIGHT Copyright 2008-2010 Michael G Schwern This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html SEE ALSO
Time::y2038::Everywhere overrides localtime() and gmtime() across the whole program. The y2038 project at http://y2038.googlecode.com/ <http://xkcd.com/376/> perl v5.14.2 2011-11-15 Time::y2038(3pm)
All times are GMT -4. The time now is 04:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy