How to Unmask/Decrypt an XML file?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to Unmask/Decrypt an XML file?
# 8  
Old 12-05-2013
Quote:
Originally Posted by RudiC
Looks like you have binary zeroes in your file, printed as "^@". Stripping those, your line in post#1 reads
Code:
ÿþ<?xml version="1.0" encoding="UTF-16" ?><Provider x@lns="http://www.fca.gov/FCSLoans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fca.gov/FCSLoans file:/C:/Users/xiangs/Projects/FCSLoans2/DataDefinition/FCSLoans2.xsd" PR

Try applying tr -d '\000' <file to your file...

EDIT: I just realize that encoding="UTF-16". If you're lucky, you could apply iconv with the UTF16 charset to your file...
Thanks for your response, I did the following.
Code:
tr -d '\000' <datafile>datafile2

Now after this when i tried to do grep PROVIDER datafile2, the whole file keeps scrolling i assume it's because of noel. Would it be possible to do successful grep with out scrolling or even not applying tr -d '\100', please advise thank you.
# 9  
Old 12-05-2013
grep will print the entire line. If the whole file is one giant line, well...

Try this, to split each tag onto a separate line:

Code:
tr -d '\000' < inputfile | sed 's/>/>\n/g' | grep -i provider

# 10  
Old 12-05-2013
Quote:
Originally Posted by Corona688
grep will print the entire line. If the whole file is one giant line, well...

Try this, to split each tag onto a separate line:

Code:
tr -d '\000' < inputfile | sed 's/>/>\n/g' | grep -i provider

I got this output

Code:
<Provider n1:schemaLocation="http://www.xyz/xasdas" PROVIDER="16" SCHEMA_VERSION="2.5" xmlns="http://www.xyz/xasdas" xmlns:xsi="http://www.xyz/xasdas" xmlns:n1="http://www.w3.org/2001/XMLSchema-instance">
</Provider>

I modified your input to get the final output which is the provider number. Do you have any better way of doing this, please suggest. thank you.

HTML Code:
tr -d '\000' < inputfile.xml | sed 's/>/>\n/g' | grep -i PROVIDER | awk '{for(i=1;i++<=NF;)if($i~/^PROVIDER/) print $i}' | cut -d"\"" -f2
# 11  
Old 12-05-2013
If you're doing grep | grep | sed | awk | cut, you might as well just rewrite it in awk.

Code:
tr -d '\000' < inputfile.xml | awk -v RS="<" -F'"' '/[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~[pP][rR][oO][vV][iI][dD][eE][rR]) print $(i+1) }'

# 12  
Old 12-05-2013
Quote:
Originally Posted by Corona688
If you're doing grep | grep | sed | awk | cut, you might as well just rewrite it in awk.

Code:
tr -d '\000' < inputfile.xml | awk -v RS="<" -F'"' '/[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~[pP][rR][oO][vV][iI][dD][eE][rR]) print $(i+1) }'

I am receiving the below error

HTML Code:
tr -d '\000' < inputfile.xml | awk -v RS="<" -F'"' '/[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~[pP][rR][oO][vV][iI][dD][eE][rR]) print $(i+1) }'
awk: /[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~[pP][rR][oO][vV][iI][dD][eE][rR]) print $(i+1) }
awk:                                                            ^ syntax error
# 13  
Old 12-05-2013
Sorry, a missing / there:

Code:
tr -d '\000' < inputfile.xml | awk -v RS="<" -F'"' '/[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~/[pP][rR][oO][vV][iI][dD][eE][rR]/) print $(i+1) }'

This User Gave Thanks to Corona688 For This Post:
# 14  
Old 12-05-2013
Quote:
Originally Posted by Corona688
Sorry, a missing / there:

Code:
tr -d '\000' < inputfile.xml | awk -v RS="<" -F'"' '/[pP][rR][oO][vV][iI][dD][eE][rR]/ {for(i=1;i++<=NF;)if($i~/[pP][rR][oO][vV][iI][dD][eE][rR]/) print $(i+1) }'

I am dissecting the code and trying to understand piece by piece

tr -d '\000' -- This will remove the binary zeroes in the data file
RS="<" -- Record Seperator is <
NF -- total number of fields
/[pP][rR][oO][vV][iI][dD][eE][rR]/ -- You were trying to match both upper case and lower case combination for a better match
-F'"" -- to get the value of provider in between double quotes
-v -- passing shell variables to awk variables ...????

you were finding the PROVIDER tag and for each record/tag until total number of fields/characters and formatting the output to trim it to the value. can you please explain it if i am wrong? i didn't understand what is the significance of -v ?

Thank you.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Encrypt and Decrypt a File with Password

Hello, I have few files on unix which are payroll related and I need them to encrypt with password so others wouldn't see the data. I use ETL tool and would like to know the unix command that does encryption/decryption to use in the ETL. Thank you, Sri (3 Replies)
Discussion started by: eskay
3 Replies

2. Shell Programming and Scripting

How to Change group and Unmask it to 027 in Linux?

I want to propose a change to the run script environment. This would change the effective group of the wsadmin account to prodview with a umask of 027 before running our services. In linux this can be accomplished by the following #!/bin/ksh # # Original shell # newgrp prodview <<... (1 Reply)
Discussion started by: sindhu puja
1 Replies

3. UNIX for Advanced & Expert Users

How to decrypt a file in UNIX?

I have a file which contains encrypted data. Can anyone tell me how to decrypt the file? (14 Replies)
Discussion started by: saga20
14 Replies

4. UNIX for Dummies Questions & Answers

How to decrypt any file in UNIX?

How to decrypt a file in unix? I dont know the type of decryption nor the type of text data it contains. We extracted the file from sfdc & need to process it in unix. When extracted, we get encrypted data in the file. The file content is- ... (0 Replies)
Discussion started by: saga20
0 Replies

5. Shell Programming and Scripting

Need to decrypt a file in a directory (SHL script)

I need to decrypt a file in a directory, I need to write a shl scrip & cron job How I find the files in the directory: the file is like this: dailypayments_sfs_payment_201011151800.dat -d The decrypt command: gpg -o dailypayments_sfs_payment_201011151800.dat -d 20101115 (the date... (7 Replies)
Discussion started by: rechever
7 Replies

6. Shell Programming and Scripting

decrypt the file

Hello all I am getting a encrypted file (.pgp) and a key which i have to use to decrypt that file. I couldn't understand where to put the key on my unix box so that decryption happens. Please reply. (2 Replies)
Discussion started by: vasuarjula
2 Replies

7. UNIX for Advanced & Expert Users

Decrypt a GPG file through shell script

Hi, I'm trying to decrypt a gpg file thorugh a shell script. But i' could'nt. My script is , -sh-3.1$ cat test_gpg.sh #!/bin/ksh echo " Hello, iam testing GPG" gpg prabhu.txt.gpg <<EOF prompt prabhu EOF exit 0 The file i'm trying to decrypt is prabhu.txt.gpg and my passphrase is... (1 Reply)
Discussion started by: apsprabhu
1 Replies

8. UNIX for Dummies Questions & Answers

Unmask

Hi All, I'm a newbie to UNIX I'm learning AIX 5l Basics I'm unable to execute UNMASK command as mentioned. Could any one help me. (6 Replies)
Discussion started by: udayakumar
6 Replies

9. Shell Programming and Scripting

How to encrypt and decrypt a file

How to encrypt and decrypt a file using unix Command? Can any one help me? (2 Replies)
Discussion started by: laknar
2 Replies

10. Solaris

Decrypt Des file - then encrypt

Help.. I need to decrypt a file that was encrypted using DES 56 Bit. I have the encryption key and the block size used but no idea what utility to use.. I then need to encrypt the file using pgp and another key I have.. againt I dont know what utility to use. I am running solaris 9 .... ... (0 Replies)
Discussion started by: frustrated1
0 Replies
Login or Register to Ask a Question