extract and format information from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extract and format information from a file
# 1  
Old 04-10-2008
extract and format information from a file

Hi,


Following is sample portion of the file;

<JDBCConnectionPool DriverName="oracle.jdbc.OracleDriver"
MaxCapacity="10" Name="MyApp_DevPool"
PasswordEncrypted="{3DES}7tXFH69Xg1c="
Properties="user=MYAPP_ADMIN" ShrinkingEnabled="false"
Targets="myapp_server" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbcSmilieracle:thin:@myserver.net:1521:dbs130"/>


Is there any way (through shell script) I can select information as following :

DriverName=="oracle.jdbc.OracleDriver"
Name=="MyApp_DevPool"
URL="jdbcSmilieracle:thin:@myserver.net:1521:dbs130"

Any suggestion will be highly appreciated.

Thanks

Sujoy
# 2  
Old 04-10-2008
if your formatting is clean and as shown:

Code:
#  awk '{print $NF}' infile | egrep "Name|URL" | sed 's#/>$##'
DriverName="oracle.jdbc.OracleDriver"
Name="MyApp_DevPool"
URL="jdbcracle:thin:@myserver.net:1521:dbs130"

# 3  
Old 04-10-2008
If we can assume that you are only interested in attributes within the file, and that they are always in double quotes, how about this.

1. Convert the file to one attribute per line
2. Grep the ones you want from that

Code:
sed -e 's%/>%%' -e 's/\(^\| \)\([A-Za-z]*="[^"]*"\)/\
\2/g' phile.xml | egrep '^(DriverName|Name|URL)='

If your sed can't handle a literal newline (yes, that's slash, backslash, newline, \2/g, in the wrap between the first and second line) then it's a bit tricky. Some seds also understand \n to mean a literal newline in the substitution part.

Tytalus' solution assumes your fields will always be the final field on a line, which sounds kind of precarious. (Also awk | grep is Useless; awk is perfectly capable of taking care of most of what grep can do.)
# 4  
Old 04-10-2008
I assume that the snippet you provided is part of a valid well-formed XML document. If so, the following XSL stylesheet will transform the XML document into the output you want and is a better solution than using sed/awk/etc.

Code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text" />

<xsl:template match="JDBCConnectionPool">
DriverName=="<xsl:value-of select="@DriverName"/>"
Name=="<xsl:value-of select="@Name"/>"
URL=="<xsl:value-of select="@URL"/>"
</xsl:template>

</xsl:stylesheet>

Code:
$ xsltproc file.xsl file.xml
DriverName=="oracle.jdbc.OracleDriver"
Name=="MyApp_DevPool"
URL=="jdbcracle:thin:@myserver.net:1521:dbs130"
$

# 5  
Old 04-15-2008
Hi Murphy,

Thanks a lot for your xsl. Yes its prefectly feching the required info.
If you can pls provide following clarifications:

1.the output is consisting of lot of spaces in between two results.

2. How to insert the "filename" with every result in attach output; so the detail for specific file can be identified.

3.If I wish to add one more "template match" section within the same xsl ; how to do that?

regards

Sujoy
# 6  
Old 04-15-2008
This should give you the desired output:

Code:
awk 'BEGIN{FS="\""; printf("Filename= %s\n\n", FILENAME)}
$1 ~ /.* DriverName=$/{print "DriverName==" FS $2 FS}
$3 ~ /.* Name=$/{print "Name==" FS $4 FS}
$5 ~ /.* URL=$/{print "URL==" FS $6 FS ;print ""}
' file

Regards
# 7  
Old 04-15-2008
Hi Franklyn,

I have modified the same with

awk 'BEGIN{FS="\""; printf("Filename= %s\n\n", /usr/data/weblogic/config/mktmixDomain/config.xml)}
$1 ~ /.* DriverName=$/{print "DriverName==" FS $2 FS}
$3 ~ /.* Name=$/{print "Name==" FS $4 FS}
$5 ~ /.* URL=$/{print "URL==" FS $6 FS ;print ""}
' file


but it gives following error:

./new.sh
awk: syntax error near line 1
awk: illegal statement near line 1

where am I going wrong?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk script to extract transcript information from gff3 file

I need help to extract transcript information from gff3 file. Here is the input Chr01 JGI gene 82773 86941 . - . ID=Potri.001G000900;Name=Potri.001G000900 Chr01 JGI mRNA 82793 86530 . - . ID=PAC:27047814;Name=Potri.001G000900.1;pacid=27047814;longest=1;Parent=Potri.001G000900... (6 Replies)
Discussion started by: Maduranga
6 Replies

2. Shell Programming and Scripting

Extract information from file

In a particular directory, there can be 1000 files like below. filename is job901.ksh #!/bin/ksh cront -x << EOJ submit file=$PRODPATH/scripts/genReport.sh maxdelay=30 &node=xnode01 tname=job901 &pfile1=/prod/mldata/data/test1.dat ... (17 Replies)
Discussion started by: vedanta
17 Replies

3. Shell Programming and Scripting

Extract information from file

Gents, If is possible please help. I have a big file (example attached) which contends exactly same value in column, but from column 2 to 6 these values are diff. I will like to compile for all records all columns like the example attached in .csv format (output.rar ).. The last column in the... (11 Replies)
Discussion started by: jiam912
11 Replies

4. Shell Programming and Scripting

Extract information from txt file

Hello! I need help :) I have a file like this: AA BC FG RF TT GH DD FF HH (a few number of rows and three columns) and I want to put the letters of each column in a variable step by step in order to give them as input in another script. So I would like to obtain: for the 1° loop:... (11 Replies)
Discussion started by: edekP
11 Replies

5. Shell Programming and Scripting

How to extract information from a file?

Hi, i have a file like this: <Iteration> <Iteration_iter-num>3</Iteration_iter-num> <Iteration_query-ID>lcl|3_0</Iteration_query-ID> <Iteration_query-def>G383C4U01EQA0A length=197</Iteration_query-def> <Iteration_query-len>197</Iteration_query-len> ... (9 Replies)
Discussion started by: the_simpsons
9 Replies

6. Shell Programming and Scripting

Extract various information from a log file

Hye ShamRock If you can help me with this difficult task for me then it will save my day Logs : ================================================================================================================== ... (4 Replies)
Discussion started by: SilvesterJ
4 Replies

7. Shell Programming and Scripting

extract information from a log file (last days)

I'm still new to bash script , I have a log file and I want to extract the items within the last 5 days . and also within the last 10 hours the log file is like this : it has 14000 items started from march 2002 to january 2003 awk '{print $4}' < *.log |uniq -c|sort -g|tail -10 but... (14 Replies)
Discussion started by: matarsak
14 Replies

8. Shell Programming and Scripting

Create shell script to extract unique information from one file to a new file.

Hi to all, I got this content/pattern from file http.log.20110808.gz mail1 httpd: Account Notice: close igchung@abc.com 2011/8/7 7:37:36 0:00:03 0 0 1 mail1 httpd: Account Information: login sastria9@abc.com proxy sid=gFp4DLm5HnU mail1 httpd: Account Notice: close sastria9@abc.com... (16 Replies)
Discussion started by: Mr_47
16 Replies

9. Shell Programming and Scripting

Extract information from Log file formatted

Good evening! Trying to make a shell script to parse log file and show only required information. log file has 44 fields and alot of lines, each columns separated by ":". log file is like: first_1:3:4:5:6:1:3:4:5:something:notinterested second_2:3:4:3:4:2 first_1:3:4:6:6:7:8 I am interested... (3 Replies)
Discussion started by: dummie55
3 Replies

10. Shell Programming and Scripting

How to extract a piece of information from a huge file

Hello All, I need some assistance to extract a piece of information from a huge file. The file is like this one : database information ccccccccccccccccc ccccccccccccccccc ccccccccccccccccc ccccccccccccccccc os information cccccccccccccccccc cccccccccccccccccc... (2 Replies)
Discussion started by: Marcor
2 Replies
Login or Register to Ask a Question