Sponsored Content
Full Discussion: Perl - CAPTURE query
Top Forums Shell Programming and Scripting Perl - CAPTURE query Post 302418756 by durden_tyler on Wednesday 5th of May 2010 09:35:12 AM
Old 05-05-2010
Quote:
Originally Posted by gefa
... is it possible do do something like the following awk statement in perl as a one liner?
to split and populate the variable $acmodel with contents of field 19 which has more than word, the file $acfilename is seperated by comma however field 19 I'd like to put a comma after the the first word to effectively make two fields out of it.

e.g this is a test would become this, is a test

Code:
my $acmodel=`cat $acfilename |awk -F, '{print $19}' |awk '{ for (i=2 ; i<=NF ; i++) print $1,$i}'

I am not sure if your awk script works the way you say it does.

Code:
$
$ ## the awk script, for the 4th field instead of the 19th
$ echo "abc,def,456,the good bad ugly,xyz" |awk -F, '{print $4}' |awk '{ for (i=2 ; i<=NF ; i++) print $1,$i}'
the good
the bad
the ugly
$
$

You may want to show us what the line in the file pointed at by the variable $acfilename looks like.

In any case, a Perl equivalent is as follows:

Code:
$
$ ## the Perl script
$ echo "abc,def,456,the good bad ugly,xyz" | perl -F, -lane '@x=split/ /,$F[3]; for($i=1; $i<=$#x; $i++){print "$x[0] $x[$i]"}'
the good
the bad
the ugly
$
$

tyler_durden

---------- Post updated at 09:35 AM ---------- Previous update was at 09:15 AM ----------

Quote:
Originally Posted by gefa
...
e.g this is a test would become this, is a test
...
On the other hand, if the 19th field in the comma-delimited file is:

Code:
this is a test

and you want to convert that to -

Code:
this, is a test

then here's an idea:

Code:
$
$
$ echo "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,this is a test,20" | perl -pe 's/(([^,]*,){18}\w+)/$1,/'
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,this, is a test,20
$
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

lazy capture don't work (regexp in perl)

hello all im trying to capture only the first brackets but no matter what i do i keep capturing from the first brackets to the last one , here what i have : <% if (!Env.strLen(oidInvoice)); szDocumentTitle = Env.formatS("S",Env.getMsg("BP_INVOICE_ENUMERATION_CREATE_TITLE")) %> and... (1 Reply)
Discussion started by: umen
1 Replies

2. Shell Programming and Scripting

perl query

a file test.dat has the following David Veterinarian John Orthopedist Jeff Dentist perl -p -e "s/\s*(\w+).*/$1/;" test.dat ......will print David Jonh Jeff how does the part in double quotes work out.... (1 Reply)
Discussion started by: bishweshwar
1 Replies

3. UNIX for Dummies Questions & Answers

Query in perl

can any1 give me line by line explanation for the following perl script as i dunno perl .. n i have searched in google .. but still thn i wanna confirm my findings fro perl experts :mad: perl -e 'while (<>) { print; $num = 2 if /fail_halt/i; $num = 1 if (/failure/i && ($num < 1)); }... (2 Replies)
Discussion started by: Dana Evans
2 Replies

4. UNIX and Linux Applications

Perl - PostGreSql query

Guys, I guess, I posted something in the wrong forum. Here it is - https://www.unix.com/shell-programming-scripting/67395-perl-postgrepsql-question.html Can you please help me with this? Regards, garric (0 Replies)
Discussion started by: garric
0 Replies

5. Shell Programming and Scripting

Perl Query Regarding format

Hello people. I have got the following script QM=ARGV; open (CHS_OUT, "echo 'DISPLAY QSTATUS(SYSTEM.CLUSTER.MY.QUEUE) all'|runmqsc $qm|"); while (<CHS_OUT>) { if ( /QUEUE\(/ ) { $QueueName = ValueParser("QUEUE", 6); } if ( /IPPROCS\(/ ) { $InpProcs = ValueParser("IPPROCS", 8); #print... (3 Replies)
Discussion started by: King Nothing
3 Replies

6. Shell Programming and Scripting

[Perl] Capture system call error message.

Hi, I googled a bit, but could not find the answer to my problem. But I am sure it is a common issue. I have this code: #!/bin/perl -w #-d use strict; sub remsh_test() { my $host = $_; printf "\n----\n\n"; printf "remsh to $host with system call\n"; my $result = system... (3 Replies)
Discussion started by: ejdv
3 Replies

7. Shell Programming and Scripting

Script to capture date/time in seconds in PERL... Cant understand errors

I'm Using this script to find the time of a file. I'm very much new to PERL and found this script posted by some one on this forum. It runs perfectly fine, just that it gives me following errors with the accurate output as well. I jus want the output to be stored in another file so that i can... (0 Replies)
Discussion started by: bankimmehta
0 Replies

8. Shell Programming and Scripting

Capture query returned values in file.

Hi All, I am connecting to Oracle DB from UNIX script. Want to capture all dates between start date and end date and store them in file. Once this is done, want to read dates one by one. How to achive this in UNIX and Oracle? Please let me know if you have any idea on the same. Thanks and... (4 Replies)
Discussion started by: Nagaraja Akkiva
4 Replies

9. Programming

Perl Query

Hi , Im using the below script to find the Good and Bad for the file permission. $rc=`find /etc/security/opasswd -perm 0600 -print -ls`; if($rc == 1) { print "GOOD: AD.1.8.4.1: The file /etc/security/opasswd exists and had permission 0600\n\n"; ... (6 Replies)
Discussion started by: gsiva
6 Replies

10. Shell Programming and Scripting

Capture output of open pipe to a file in perl

Hi, I am trying to capture the output of the an open pipe in perl. but I am not sure how to do this. can some one please help me do that? Below is the script I am using (2 Replies)
Discussion started by: ahmedwaseem2000
2 Replies
All times are GMT -4. The time now is 03:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy