Sponsored Content
Top Forums Shell Programming and Scripting specifying multiple conditions in AWK Post 302420739 by Scott on Wednesday 12th of May 2010 10:28:08 AM
Old 05-12-2010
Hi.

Something like:
Code:
awk -F ';' '($2 == "ABCD") && ($3 == "MNOP") && ($4 == "KLPM") { print $2, $3;}'  file.xml

You could combine that to
Code:
awk -F ';' '$2 $3 $4 == "ABCDMNOPKLPM" { print $2, $3;}'  file.xml

(if you wanted Smilie)

Last edited by Scott; 05-12-2010 at 11:34 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

multiple conditions in if statements

Hi all, I'm confused about the proper syntax for multi-conditional if then statements. I'm trying to set limitations on info input on the command line.. i.e. if ] ;then $x=$vr1 else print "You have entered an invalid option." Can someone please clue me in on what is wrong with my syntax;... (3 Replies)
Discussion started by: tim mauger
3 Replies

2. UNIX for Dummies Questions & Answers

multiple conditions in if/then

Hello, I am having trouble with the syntax with a conditional statement in a BASH script involving multiple conditions. Any suggestions would be greatly appreciated! if ; then array=("${array}" "$dnNum" ) fi i receive this error: ./testscript: ' (4 Replies)
Discussion started by: grandtheftander
4 Replies

3. Shell Programming and Scripting

multiple if conditions

Guys, Im trying to have a script that evaluates multiple conditions : test.sh: if then echo "host $1" else if then echo "host $1" else echo $1 not valid exit 1 fi when I do ./test.sh brazil1 I get: (4 Replies)
Discussion started by: bashshadow1979
4 Replies

4. Shell Programming and Scripting

Help regarding multiple conditions

Hi All, I am new to shell scripting. Can any one say what is wrong in this if statement, that uses multiple conditions if then *************** else if ( -z $pcs && "$night_time_calc" > "$night_time" ) then ******************************** ... (4 Replies)
Discussion started by: ssenthilkumar
4 Replies

5. UNIX for Dummies Questions & Answers

If + multiple conditions

Hello Unix-Forums! It has been a long time since my last post, but finally I've got a new question: I know in case you can use multiple patterns by case $var in a|b|c|ab) and so on. But how would I place an OR between if ] then ... if ] then ... I want to execute the "..." if... (3 Replies)
Discussion started by: intelinside
3 Replies

6. Shell Programming and Scripting

awk multiple search and if conditions

Hi I wanted to search for 2 patterns. These patterns are matched only if the if condition is matched for example: This is the kind of command that I have in mind which is obviously not correct: awk '/abc/ if ($1>10) {print);/xyz/ if ($2>5) {print)' myfile myfile: 12 14 3 20 45 abc 21 ... (7 Replies)
Discussion started by: zorrox
7 Replies

7. Shell Programming and Scripting

Using awk to parse multiple conditions

There are 4 ways the user can input data and unfortunately the parse rules for each are slightly different. The first condition works great and the input file is attached for the second condition. Conditions 3 and 4 will follow I'm sure I will have trouble with them and need help as well. The... (9 Replies)
Discussion started by: cmccabe
9 Replies

8. Shell Programming and Scripting

Multiple conditions in IF

Fellas, Am new to unix os/ and here the situation , I am trying to write multiple condition statement inside if but it throws me a error here is my piece of code , if ] && ] && ] then commands fi error : line 15 : ` can someone please advise me how to fix it Please use... (7 Replies)
Discussion started by: xeccc5z
7 Replies

9. Shell Programming and Scripting

awk to change value of field using multiple conditions

In the below awk in the first step I default Classification NF-1 to VUS. Next, I am trying to change the value of Classification (NF) to whatever CLINSIG (NF-1) is. If there is only one condition everything works great, but if there are two conditions it does not work. Is the syntax used... (4 Replies)
Discussion started by: cmccabe
4 Replies

10. UNIX for Beginners Questions & Answers

Multiple If conditions

I am analyzing one of the scripts written by another person.script is having multiple if conditions and everything are nested.The code is not formatted properly.Is there any way to identify in Unix to identify begin and end of a particular if block? (6 Replies)
Discussion started by: vamsi.valiveti
6 Replies
XML::Smart::Tutorial(3pm)				User Contributed Perl Documentation				 XML::Smart::Tutorial(3pm)

NAME
XML::Smart::Tutorial - Tutorial and examples for XML::Smart. SYNOPSIS
This document is a tutorial for XML::Smart and shows some examples of usual things. Working with contents: In XML::Smart the key CONTENT is reserved and shouldn't be used directly, since XML::Smart will deal with the convertion of arguments to node contents, including multiple node contents autimatically. What happens when you set a value: $xml->{root}{foo} = 'simple value' ; Here foo will be a normal argument/attribute value, and will generate this XML data: <root foo="simple value"/> But if you insert some tag or lines in the values by default XML::Smart will convert it to a node content: $xml->{root}{foo} = "line0 lien1 line2 " ; And will generate that XML data: <root> <foo>line0 lien1 line2 </foo> </root> But what you can do if you want to force some type, let's say, have a node content with a simple value: $xml->{root}{foo} = 'simple value' ; $xml->{root}{foo}->set_node(1) ; And will generate that XML data: <root> <foo>simple value</foo> </root> Multiple contents: When you have interpolated content/data you need to work in a different. Let's say that you load this XML data: <root> content0 <tag1 arg="1"/> content1 </root> If you access directly the root key as string you will get all the content parts grouped. So, this code: my $xml = new XML::Smart(q` <root> content0 <tag1 arg="1"/> content1 </root> `,'smart') ; print "#$xml->{root}#" ; Will print that: # content0 content1 # To access each part of the content independently you should use an array that receive the method content(): my @content = $xml->{root}->content ; print "#$content[0]# " ; And this will print that: # content0 # Now to set the multiple content values you should use the method content() with 2 arguments: $xml->{root}->content(0,'new content') ; And now the XML data produced will be: <root>new content<tag1 arg="1"/> content1 </root> If you use the method content() with only one argument it will remove all the multiple contents and will set the new value in the place of the 1st content. Setting the XML Parser. By defaul XML::Smart will use XML::Parser or XML::Smart::Parser (in this order of preference) to load a XML data. To force or define by your self the parser you can use the 2nd argument option when creating a XML::Smart object: my $xml = new XML::Smart( 'some.xml' , 'XML::Parser' ) ; ## and my $xml = new XML::Smart( 'some.xml' , 'XML::Smart::Parser' ) ; XML::Smart also has an extra parser, XML::Smart::HTMLParser, that can be used to load HTML as XML, or to load wild XML data: my $xml = new XML::Smart( 'some.xml' , 'XML::Smart::HTMLParser' ) ; Aliases for the parser options: SMART|REGEXP => XML::Smart::Parser HTML => XML::Smart::HTMLParser So, you can use as: my $xml = new XML::Smart( 'some.xml' , 'smart' ) ; my $xml = new XML::Smart( 'some.xml' , 'html' ) ; Customizing the Parser. You can customize the way that the parser will treat the XML data: Forcing nodes/tags and arguments/attributes to lowercase or upercase: ## For lower case: my $xml = new XML::Smart( 'some.xml' , lowtag => 1 , lowarg => 1 , ) ; ## For uper case: my $xml = new XML::Smart( 'some.xml' , upertag => 1 , uperarg => 1 , ) ; Loading arguments without values (flags) as a TRUE boolean: ** Note, this option will work only when the XML is parsed by XML::Smart::HTMLParser, since only it accept arguments without values! my $xml = new XML::Smart( '<root><foo arg1="" flag></root>' , 'XML::Smart::HTMLParser' , arg_single => 1 , ) ; Here's the tree of the example above: 'root' => { 'foo' => { 'flag' => 1, 'arg1' => '' }, }, Customizing the parse events: XML::Smart can redirect the parsing process to personalized functions: my $xml = XML::Smart->new( 'some.xml' , on_start => &on_start , on_char => &on_char , on_end => &on_end , ) ; sub on_start { my ( $tag , $pointer , $pointer_back ) = @_ ; $pointer->{$tag}{type_user} = 1 if $tag =~ /(?:name|age)/ ; } sub on_char { my ( $tag , $pointer , $pointer_back , $content) = @_ ; $$content =~ s/s+/ /gs ; } sub on_end { my ( $tag , $pointer , $pointer_back ) = @_ ; $pointer->{$tag}{type_extra} = 1 if $tag =~ /(?:more|tel|address)/ ; } AUTHOR
Graciliano M. P. <gm@virtuasites.com.br> I will appreciate any type of feedback (include your opinions and/or suggestions). ;-P Enjoy and thanks for who are enjoying this tool and have sent e-mails! ;-P ePod This document was written in ePod (easy-POD), than converted to POD, and from here you know the way. perl v5.10.1 2004-12-08 XML::Smart::Tutorial(3pm)
All times are GMT -4. The time now is 12:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy