Find word in file then get following characters


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find word in file then get following characters
# 1  
Old 08-19-2011
Find word in file then get following characters

Hello,

I have several xml files from which I want to find and return a particular string
I want to locate the InId="00000008". Now that is inlcuded within a tag and ofcourse the number is different every time

this is what I came up with given that after greping the line that contains the InId it is placed always fourth with spaces seperating the information.

Code:
 
ls $1 | grep 'ANI*' > list
while read line
do
 grep 'inID="' $line | cut -d ' ' -f4 > tmp
 InvID=`grep 'inID="' tmp`
 
 echo $line " ---- " $InvID
 
done < list

this worked fine outputing the filename and the inID until I found out several of the files did not inlcude the inID at the fourth place but somwhere else.

I need to find a way to grep that "inID=" and the following 8 character ID no matter their position in the file

I tried grep -A 9 which should return "inID="00000008" but it seems AIX does not support -A for grep.

Any ideas how to do this? either in awk or sed or other way

many thanks in advance
# 2  
Old 08-19-2011
Post a sample data from your input file.
# 3  
Old 08-19-2011
Code:
 
<?xml version="1.0" encoding="UTF-8"?>
<Header>
    <From>
        <Credential
            domain="ID">
    <Identity>680</Identity>
 
    </Credential>
 
    </From>
    <To>
        <Credential
            domain="ID">
    <Identity>908</Identity>
 
    </Credential>
 
    </To>
    <Sender>
        <Credential domain="ID">
    <Identity>001</Identity>
 
    Credential>
        <UserAgent>Test</UserAgent>
    </Sender>
 
</Header>
<Request Mode="test"><InDetailRequest><InDetailRequestHeader Date="2011-04-06T00:00:00-03:00" inID="00000008" inOrigin="test" >
</InDetailRequestHeader>
</InDetailRequest>
    </Request>
</cXML>

# 4  
Old 08-19-2011
not tested...
Code:
nawk ' /inID/ {for(i=1;i<=NF;i++){if($i~/inID/) {print $i}}' xmlfile

This User Gave Thanks to itkamaraj For This Post:
# 5  
Old 08-19-2011
Hi,
just try this,
Code:
grep 'inID' $line | nawk '{split($0,a,"inID=\"");b=substr(a,0,8);print b;}'

cheers,
Ranga:-)
This User Gave Thanks to rangarasan For This Post:
# 6  
Old 08-19-2011
Quote:
Originally Posted by itkamaraj
not tested...
Code:
nawk ' /inID/ {for(i=1;i<=NF;i++){if($i~/inID/) {print $i}}' xmlfile

Had a missing } at the end but worked like a charm! Thank you very much


for the record I also tried
Code:
 
sed -n '/inID="/,/" /p' $line

but with no luck

nevertheless many thanks again
# 7  
Old 08-19-2011
Quote:
Originally Posted by TasosARISFC
for the record I also tried
Code:
 
sed -n '/inID="/,/" /p' $line

but with no luck
Try this...
Code:
sed -n '/inID/s/.*\(inID="[0-9]*"\) .*/\1/p' $line

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Count characters in a csv file and add an word.

Hello, I want to add a sentence to "post column" those who are only less than 30 characters.Thank you very much for your help. "category","title","post" "Z","Zoo","test 54325 test 45363mc." "Z","Zen","rs2w3rsj 2d342dg 2d3s4f23 d23423s23h 2s34s2423g ds232d34 2342." "Z","Zet","test4444... (3 Replies)
Discussion started by: hoo
3 Replies

2. Shell Programming and Scripting

Search for the word and exporting 35 characters after that word using shell script

I have a file input.txt which have loads of weird characters, html tags and useful materials. I want to display 35 characters after the word "description" excluding weird characters like $&lmp and without html tags in the new file output.txt. Help me. Thanx in advance. I have attached the input... (4 Replies)
Discussion started by: sachit adhikari
4 Replies

3. Shell Programming and Scripting

Search for the word and exporting 35 characters after that word using shell script?

I have a file input.txt which have loads of weird characters, html tags and useful materials. I want to display 35 characters after the word description excluding weird characters like $$#$#@$#@***$# and without html tags in the new file output.txt. Help me. Thanx in advance. My final goal is to... (11 Replies)
Discussion started by: sachit adhikari
11 Replies

4. UNIX for Dummies Questions & Answers

Find word in a large file

Hi all I am working on disallowing users to use easy passwords in pam.d setting on RHEL 5.7 and SuSe 11, and I was hoping to add more words into the current cracklib dict, so I use "echo" command to append new words into the file I dont want to add the same words into the dict, I think I... (2 Replies)
Discussion started by: hedkandi
2 Replies

5. UNIX for Dummies Questions & Answers

Find EXACT word in files, just the word: no prefix, no suffix, no 'similar', just the word

I have a file that has the words I want to find in other files (but lets say I just want to find my words in a single file). Those words are IDs, so if my word is ZZZ4, outputs like aaZZZ4, ZZZ4bb, aaZZZ4bb, ZZ4, ZZZ, ZyZ4, ZZZ4.8 (or anything like that) WON'T BE USEFUL. I need the whole word... (6 Replies)
Discussion started by: chicchan
6 Replies

6. Shell Programming and Scripting

How to find a particular word from a file

Hello Experts, I have to count the word like "RESULT_CODE: : -6" from the multiple files names like req.result_2_vqx-71144750.log for a particular date. Lets suppose the date is 10 OCT 2011. How I can do it with a single command in Solaris environment. Reagrds Oracle User (8 Replies)
Discussion started by: Oracle_User
8 Replies

7. UNIX for Dummies Questions & Answers

find a word in a file, plus the next 6 characters?

I plan to use sed in a script to replace a string. My problem is the last 6 characters of the word to be replaced can be different each time, plus it's not always in the same spot on the line so I can't use cut or nawk to get the field. So I am looking for a way to find a certain word in a file,... (6 Replies)
Discussion started by: mikayla73
6 Replies

8. Shell Programming and Scripting

find replace a pattern and following characters in a word

Suppose that I have a string "one:#red two:#yellow three:#gr'een four:#blu^e" and I want to replace the pattern :# and the following characters in the word with nothing. The output string should look "one two three four" How can I do this with sed. Some points to consider (a) the last word in... (1 Reply)
Discussion started by: superuser84
1 Replies

9. Shell Programming and Scripting

Find Exact word in file

Hi ALL, I want to search one string “20 “ i.e 20 with space. But my file where I am searching this “20 “ contain some data like 120 before image file truncated 220 Reports section succeeded 20 Transaction database .prd stopped 220 Reports section completed. When I search for the... (5 Replies)
Discussion started by: Jeevan Salunke
5 Replies

10. Shell Programming and Scripting

find a word in a file, and change a word beneath it ??

Hi all, I have a file with lines written somewhat like this. aaaa ccc aa linux browse = no xssxw cdcedc dcsdcd csdw police dwed dwd browse = no cdecec (2 Replies)
Discussion started by: vikas027
2 Replies
Login or Register to Ask a Question