MrTEE has asked for the wisdom of the Perl Monks concerning the following question:
I know this is a Perl site, but i need help with a one liner. I have a little bash script that cats out a file and tells me if there is a line where the 11th column has more than 6 characters in it. It emails me where there is a bad line in a file - bead meaning that it will break a downstream process. anyhow when i get the email saying that there is a bad file i just log in to the pc via vpn and the I sed out the lines from the file that I get in the email. The bad lines are always in danny.csv not danny1.csv It has been the same lines killing the downstream process for a few weeks, so i put the "sed -i's" into the script and it does it automagically.
for i in danny.csv danny1.csv do cat /come/and/play/with/$i | perl -ne 'print if length((split /,/)[10 +]) > 6' | mail -s "danny.csv bad line" casper@casperr.com done #it would be nice to find a perl change the file in place sed -i '/D,642,0642,UBF,EVL,,M,,S,S,FOREVER,213,213,/d' /come/and/pla +y/with/us/danny.csv sed -i '/D,642,0642,UBF,EVL,,M,,S,S,QSP-U=C,4,4,/d' /come/and/play/wi +th/us/danny.csv
However when a new line gets put into this file, I am going to have to log in and take out the line. SO I have been trying to write a perl one liner that will edit the file in place, like sed, and make a backup of the file. I just need a perl one liner that will delete any line where the 11th columns has more than 6 characters in it.
perl -p -i.bak -e 's/\,\w{7}\,//g - which does not work.
I tried something like this:
perl -nle 'print if /\,\w{7}\,/' /come/and/play/with/us/danny.csv
but that does not catch the QSP-U=C and it catches more lines than just the FOREVER. for a solutinog I need to focus on the the 11th column.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: perl one liner for csv file one field (useless use of cat and other awards References)
by eyepopslikeamosquito (Archbishop) on Jan 17, 2015 at 05:49 UTC | |
Re: perl one liner for csv file one field
by eyepopslikeamosquito (Archbishop) on Jan 17, 2015 at 05:33 UTC | |
by morgon (Priest) on Jan 18, 2015 at 04:58 UTC | |
by Tux (Canon) on Jan 18, 2015 at 11:24 UTC | |
Re: perl one liner for csv file one field
by Tux (Canon) on Jan 17, 2015 at 09:43 UTC | |
Re: perl one liner for csv file one field
by pme (Monsignor) on Jan 17, 2015 at 05:30 UTC | |
Re: perl one liner for csv file one field
by Tux (Canon) on Jan 17, 2015 at 19:16 UTC | |
Re: perl one liner for csv file one field
by Anonymous Monk on Jan 17, 2015 at 07:31 UTC |