Parsing XML using command line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing XML using command line
# 15  
Old 07-18-2015
Quote:
Originally Posted by pauldx
My apologize. I am new to the forum .
Sorry I mean I want to use your code below . But I need to understand how can I save outputfile using perl command below but need unique email list. I don't want to use |sort | uniq and I am sure we can achieve this in Perl

Code:
perl -ne '$"=qq{\n}; @mail = $_=~/saw:user name="(.*?)"/g and print "@mail\n"' dir1/inputfile{1,2,3} > output.result

What you are asking, now, changes the command radically.

I do not like how messy is becoming as a one-liner. Here's a proper Perl script.
Code:
#!/usr/bin/perl

use strict;
use warnings;

my %emails;
while(my $line = <>) {
    $emails{$_}++ for my @mail = $line =~ m/saw:user name="(.*?)"/g;
}

for my $email (sort keys %emails) {
    print "$email\n";
}

Save as extract_emails.pl
Run as
Code:
perl extract_emails.pl dir1/inputfile{1,2,3} > output.result


Last edited by Aia; 07-18-2015 at 02:32 AM..
This User Gave Thanks to Aia For This Post:
# 16  
Old 07-18-2015
I did this way in one command and its working great ...

Code:
perl -ne '$"=qq{\n}; @mail = $_=~/saw:user name="(.*?)"/g and print "@mail\n"' demand360+alerts/* rate360+alerts/* | sort | uniq > /home/orabi/abc.txt


Last edited by Don Cragun; 07-18-2015 at 02:14 AM.. Reason: Change ICODE tags to CODE tags again.
# 17  
Old 07-18-2015
Quote:
Originally Posted by pauldx
[...]I don't want to use |sort | uniq and I am sure we can achieve this in Perl
I guess you changed your mind. Smilie
My post #15 script will do what you asked previously. It would keep unique ones and it will sort it in Perl.
# 18  
Old 07-18-2015
And, if you going to use sort | uniq (after explicitly saying you didn't want to do that in post #14 in this thread), you could at least replace those two commands in your pipeline with just sort -u.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command Line Perl for parsing fasta file

I would like to take a fasta file formated like >0001 agttcgaggtcagaatt >0002 agttcgag >0003 ggtaacctga and use command line perl to move the all sample gt 8 in length to a new file. the result would be >0001 agttcgaggtcagaatt >0003 ggtaacctga cat ${sample}.fasta | perl -lane... (2 Replies)
Discussion started by: jdilts
2 Replies

2. Shell Programming and Scripting

Suggestions for command line parsing

Hi all I need to put a command line parser together to parse numeric fields and ranges passed to a script. I'm looking for a bash function that is as elegant and simple as possible. So the input would be of the following form - 1,2,8-12 This would return - 1,2,8,9,10,11,12 Input can... (7 Replies)
Discussion started by: steadyonabix
7 Replies

3. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

4. Shell Programming and Scripting

XML: parsing of the Google contacts XML file

I am trying to parse the XML Google contact file using tools like xmllint and I even dived into the XSL Style Sheets using xsltproc but I get nowhere. I can not supply any sample file as it contains private data but you can download your own contacts using this script: #!/bin/sh # imports... (9 Replies)
Discussion started by: ripat
9 Replies

5. Programming

Parsing command line arguments in Python

Hi, I've a python script called aaa.py and passing an command line option " -a" to the script like, ./aaa.py -a & Inside the script if the -a option is given I do some operation if not something else. code looks like ./aaa.py -a . . if options.a ---some operation--- if not options.a... (1 Reply)
Discussion started by: testin
1 Replies

6. Shell Programming and Scripting

Parsing a command line parameter in script

I have a simple script that builds a complex program call which passes a number of parameters to the program. I'm trying to enhance the script to include the value of the command line parameter in the name of a file being created. The problem I'm having is that the parameter may include a forward... (11 Replies)
Discussion started by: pbmax626
11 Replies

7. Shell Programming and Scripting

Help parsing command line arguments in bash

Looking for a little help parsing some command line arguments in a bash script I am working on, this is probably fairly basic to most, but I do not have much experience with it. At the command line, when the script is run, I need to make sure the argument passed is a file, it exists in the... (3 Replies)
Discussion started by: Breakology
3 Replies

8. Shell Programming and Scripting

parsing command line switches in Perl

Hi, My perl script takes few switches which i'm parsing through GetOpt::Long module. My script looks like something : myscript.pl --file="foo" --or --file="bar" The --file switch takes 2 arguments foo and bar. The 2 values of file are separated by --or switch. I want to ensure that... (1 Reply)
Discussion started by: obelix
1 Replies

9. UNIX for Dummies Questions & Answers

command line argument parsing

how to parse the command line argument to look for '@' sign and the following with '.'. In my shell script one of the argument passed is email address. I want to parse this email address to look for correct format. rmjoe123@hotmail.com has '@' sign and followed by a '.' to be more... (1 Reply)
Discussion started by: rmjoe
1 Replies

10. UNIX for Advanced & Expert Users

Parsing the command line arguments

Is there a way to get the command line arguments. I am using getopt(3) but if the arguments are more than one for a particular option than it just ignores the second argument. For eg ./a.out -x abc def now abd will be got with -x using getopt "( x : )" and string abc\0def will get stored... (7 Replies)
Discussion started by: jayakhanna
7 Replies
Login or Register to Ask a Question