Sponsored Content
Top Forums Shell Programming and Scripting To search for a particular tag in xml and collate all similar tag values and display them count Post 302911044 by Chubler_XL on Tuesday 29th of July 2014 05:45:36 PM
Old 07-29-2014
OK I'll give it a whirl:

Firstly I'll break it into multiple lines for ease of reading:

Code:
awk -F'[><]' '
NF {
  c[$5]++
  d[$5] = d[$5] ? d[$5] ORS $0 : $0
}
END{
   for(i in d)
      print i ": (count - " c[i] ")" RS d[i] RS
}' file

NF { examine lines that have 1 or more fields (ie non-blank lines).

-F'[><]' This argument to awk sets your field separator to < or > awk will split the line up on these characters and assign each field to $1 thru $n.

So for <xml><object1>house</object1><object2>child</object2>

we get:
Code:
$1 = ""
$2 = "xml"
$3 = ""
$4 = "object1"
$5 = "house"
$6 = "/object1"

c[$5]++ creates a associative array c[] with field #5 as the key and increments the value (c[house]=c[house]+1) so it's a count of the number of times each tag appears.

d[$5] = d[$5] ? d[$5] ORS $0 : $0 if d[$5] is not null/blank then append ORS (output record separator which is newline in this case) and while input line to it; otherwise assign it to the whole input line.

The END block goes through all the keys in the d[] array and prints the key count followed by all input lines that contain that key (value of the d[] array element).
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extracting tag values from XML using perl

Hi All, I'm trying to extract the values for the 'src' and 'alt' tags within an xml file. In the files that I'm searching, the tags are always enclosed within an 'img' tag. Typically: <img src="diwiz01.gif" width="576" height="254" alt="Out-of-process and In-process COM Objects"><bookmark... (3 Replies)
Discussion started by: Steve_altius
3 Replies

2. Shell Programming and Scripting

KSH Script to Get the <TAG Values> from an XML file

Hi All, I am new to Unix I need a KSH script to get the values from XML file to write to a temp file. Like the requirement is from the below TAG <MAPPING DESCRIPTION ="Test Mapping" ISVALID ="YES" NAME ="m_test_xml" OBJECTVERSION ="1" VERSIONNUMBER ="1"> I need the MAPPING DESCRIPTION... (3 Replies)
Discussion started by: perlamohan
3 Replies

3. Shell Programming and Scripting

How to retrieve the value from XML tag whose end tag is in next line

Hi All, Find the following code: <Universal>D38x82j1JJ </Universal> I want to retrieve the value of <Universal> tag as below: Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies

4. Shell Programming and Scripting

Find out values between xml tag

Find out values between xml tag ....... ABC><name></ABC><xyz>test</xyz>..here some other tag... <ABC><NUMBER></ABC><xyz>12345</xyz>.... ....... I want to take between bewtween ABC><NUMBER></ABC><xyz> to </xyz> that is 12345 (3 Replies)
Discussion started by: Jairaj
3 Replies

5. Shell Programming and Scripting

Search for a html tag and print the entire tag

I want to print from <fruits> to </fruits> tag which have <fruit> as mango. Also i want both <fruits> and </fruits> in output. Please help eg. <fruits> <fruit id="111">mango<fruit> . another 20 lines . </fruits> (3 Replies)
Discussion started by: Ashik409
3 Replies

6. Shell Programming and Scripting

XML Parse between to tag with upper tag

Hi Guys Here is my Input : <?xml version="1.0" encoding="UTF-8"?> <xn:MeContext id="01736"> <xn:VsDataContainer id="01736"> <xn:attributes> <xn:vsDataType>vsDataMeContext</xn:vsDataType> ... (12 Replies)
Discussion started by: pareshkp
12 Replies

7. Shell Programming and Scripting

Search for a tag and display a message if not found.

Hi All, I am working with a XML file. Below is part for the file. <Emp:Profile> <Emp:Description>Admin</Emp:Description> <Emp:Id>12347</Emp:Id> </Emp:Profile> <Emp:Profile> ... (7 Replies)
Discussion started by: Girish19
7 Replies

8. Shell Programming and Scripting

sed search and replace after xml tag

Hi All, I'm new to sed. In following XML file <interface type='direct'> <mac address='52:54:00:86:ce:f6'/> <source dev='eno1' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> ... (8 Replies)
Discussion started by: varunrapelly
8 Replies

9. Shell Programming and Scripting

XML files with spaces in the tag name, parse & display?

Greetings all, I have an XML file that is being generated from my application, here is a sample of the first tag (That I am trying to remove and display in a list..) Example- <tag one= "data" data="1234" updateTime="1300"> <tag one= "data1" data="1234" updateTime="1300"> <tag... (5 Replies)
Discussion started by: jeffs42885
5 Replies

10. Shell Programming and Scripting

Moving XML tag/contents after specific XML tag within same file

Hi Forum. I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script. Any feedback will be greatly appreciated. ... (19 Replies)
Discussion started by: pchang
19 Replies
TAGGREPPER(1)							   User Commands						     TAGGREPPER(1)

NAME
taggrepper - search and match tags of media file for regular expressions SYNOPSIS
taggrepper [--tag-label regexp]... [--display-taglabel]... [FILE/DIRECTORY]... DESCRIPTION
Perform a regular expression search on the tags of specified media files. Mandatory arguments to long options are mandatory for short options too. All regular expressions are Perl Compatible Regular expressions supported by the PCRE libraries. Note that all matches are ANDed, meaning that for a successful match, matches against all tags must occur. Support exists for MP3 files, and, if compiled in, for Ogg Vorbis and FLAC files as well. -t, --title=REGEXP Match the title tag against REGEXP -a, --artist=REGEXP Match the artist tag against REGEXP -l, --album=REGEXP Match the album, tag against REGEXP -y, --year=REGEXP Match the year tag against REGEXP -g, --genre=REGEXP Match the genre tag against REGEXP -c, --comment=REGEXP Match the comment tag against REGEXP --track=REGEXP Match the track tag against REGEXP -c, --composer=REGEXP Match the composer tag against REGEXP -o, --orig-artist=REGEXP Match the original artist tag against REGEXP -c, --copyright=REGEXP Match the copyright tag against REGEXP -u, --url=REGEXP Match the URL tag against REGEXP -e, --encoded-by=REGEXP Match the encoded-by tag against REGEXP --any-tag=REGEXP Match the encoded-by tag against REGEXP. Using this option makes every one of the above options to be ignored --display-title display title tag of matching files --display-artist display artist tag of matching files --display-album display album tag of matching files --display-year display year tag of matching files --display-genre display genre tag of matching files --display-comment display comment tag of matching files --display-track display track tag of matching files --display-composer display composer tag of matching files --display-orig-artist display orig-artist tag of matching files --display-copyright display copyright tag of matching files --display-url display url tag of matching files --display-encoded-by display encoded-by tag of matching files -0, --print0, Use null character as delimiter. This option can be used with -0 option of xargs. -r, --recursive Search directories recursively -v, --version Display version and exit -h, --help Display this help message All regular expressions are PCRE regular expressions. Refer to the PCRE documentation for details. Report comments and bugs to a.kumar@alumni.iitm.ac.in COPYING
Copyright (C) Kumar Appaiah License: BSD License (see COPYING file in the distribution tarball for details) This program is free software; you can distribute it under the terms of the BSD License. See the file COPYING in the tarball, or /usr/share/common-licenses/BSD on Debian-based systems. SEE ALSO
pcre(3) taggrepper 0.01 July 2009 TAGGREPPER(1)
All times are GMT -4. The time now is 08:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy