Sponsored Content
Top Forums Shell Programming and Scripting Help shell scripting using awk or sed or other Post 302955120 by RavinderSingh13 on Monday 14th of September 2015 05:15:32 PM
Old 09-14-2015
Hello poulis,

Welcome to forum, following may help you in same.
For your first condition, let's say I am assuming (as you didn't mention) lines sequence are NOT proper apart from they are always coming from tag <chamada> to </chamada>. Then following may help you in same.
I have prepared a Input_file by taking help of your shown input and little editing in it to off course cross verify my code.
Input_file:
Code:
 <chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <numeroTerminalRecebedor>CALLED</numeroTerminalRecebedor>
       <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>TARGET</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>CALLED</numeroTerminalRecebedor>
       <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>TARGET</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>TARGET</numeroTerminalRecebedor>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>REDIRECTED</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>TARGET</numeroTerminalRecebedor>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>REDIRECTED</numeroRedirecionado>
</chamada>

Now after running as follows code for first condition.
Code:
 awk -vs1="<numeroRedirecionado>TARGET</numeroRedirecionado>" -vs2="<numeroTerminalOriginador>CALLER</numeroTerminalOriginador>" -vs3="<numeroTerminalRecebedor>CALLED</numeroTerminalRecebedor>" 'BEGIN{A[s1];A[s2];A[s3];} {while($0 !~ /<\/chamada>/){P[NR]=$0;sub(/^[[:space:]]+/,X,$0);D=$0;{for(D in A){S++;delete A[D]}};getline}} {if(S==3){sub("TARGET",".",P[NR-1]);for(i=1;i<=NR;i++){if(P[i]){print P[i];delete P[i]}}};print $0}' check_condition11

Output will be as follows then.
Code:
 <chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <numeroTerminalRecebedor>CALLED</numeroTerminalRecebedor>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>.</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>CALLED</numeroTerminalRecebedor>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>.</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>TARGET</numeroTerminalRecebedor>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>REDIRECTED</numeroRedirecionado>
</chamada>
<chamada>
        <numeroTerminalOriginador>CALLER</numeroTerminalOriginador>
        <imeiOriginador></imeiOriginador>
        <cgiPrimeiraErbOriginador></cgiPrimeiraErbOriginador>
        <cgiUltimaErbOriginador></cgiUltimaErbOriginador>
        <numeroTerminalRecebedor>TARGET</numeroTerminalRecebedor>
        <imeiRecebedor></imeiRecebedor>
        <cgiPrimeiraErbRecebedor></cgiPrimeiraErbRecebedor>
        <cgiUltimaErbRecebedor></cgiUltimaErbRecebedor>
        <tipoChamada>N</tipoChamada>
        <formatoConteudoChamada>V</formatoConteudoChamada>
        <dataInicio>05102011</dataInicio>
        <horaInicio>171558</horaInicio>
        <gmt>GMT-03</gmt>
        <duracao>000041</duracao>
        <tipo></tipo>
        <central>CENTRAL</central>
        <numeroRedirecionado>REDIRECTED</numeroRedirecionado>
</chamada>

I have prepared second condition code too but couldn't found it in system which name I saved it, looking for it, will let you know when I get as it is almost a day I haven't slept. Let me know if this helps you.

Thanks,
R. Singh
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help on SED AWK in shell scripting

Hi, I have a script abc.sql which contains a word 'timestamp'. I have another script xyz.txt genrated everyweek, which has a new timestamp value every week. How do I replace the word 'timestamp' in script abc.sql with the value mentioned in the script xyz.txt, so that I can run the script... (3 Replies)
Discussion started by: kaushys
3 Replies

2. Shell Programming and Scripting

scripting with awk and sed

hey all, i was just wondering if it was possible to to get data from user input , and parse it through sed to remove or add what that user has entered into a flat file? do i need awk ? any help is greatly appreciated ~shan2on (2 Replies)
Discussion started by: shan2on
2 Replies

3. Shell Programming and Scripting

usage...sed/awk/reg-exp ..in shell scripting

in shell scripting there is extensive usage of i> regular expression ii>sed iii>awk can anyone tell me the suitable contexts ...i mean which one is suitable for what kind of operation. like the reg-exp and sed seems to be doing the same job..i.e pattern matching (1 Reply)
Discussion started by: mobydick
1 Replies

4. UNIX for Dummies Questions & Answers

tr, sed, awk, cat or scripting

I need to change all Newline caracters (\12) to Fieldseparator(\34). tr -A '\12' '\34' <file1> file2 Replace all delete (\177) with Newline (\12) tr -A '\177' '\12' <file2> file3 Put the name of the file first in all rows. awk '{printf "%s\34%s\n", FILENAME,$0} file3 > file4 So far no... (6 Replies)
Discussion started by: MrKlint
6 Replies

5. Shell Programming and Scripting

Sed function is shell scripting

Hello everybody, I trying to convert a text inside my file that looks something like this: into hyperlink so that the user can click onto it..... I tried this but doesn't work cat mylist9.html |sed -e '<a href="' >mylist13.html Thanks (13 Replies)
Discussion started by: kev_1234
13 Replies

6. Shell Programming and Scripting

sed or awk scripting help needed

hi all, for an example : df -k output shows: $ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/cciss/c0d0p6 3099260 1117760 1824068 8% / /dev/cciss/c0d0p1 256666 18065 225349 8% /boot none 8219180 0 8219180 0% /dev/shm /dev/mapper/vglocal-home 1032088 245172 734488 26%... (7 Replies)
Discussion started by: raghur77
7 Replies

7. Shell Programming and Scripting

Scripting awk or sed or shell

input buff_1 abc satya_1 pvr_1 buff_2 def satya_1 pvr_1 buff_3 ghi satya_1 pvr_1 buff_4 jkl satya_1 pvr_1 required out put buff_1 abc satya_1 pvr_1 abc satya_1 buff_2 def satya_1 pvr_1 def satya_1 buff_3 ghi satya_1 pvr_1 ghi satya_1 (6 Replies)
Discussion started by: pvr_satya
6 Replies

8. Shell Programming and Scripting

Shell Scripting -- sed

Hi, In one of my scripts, I am using sed to do an expression replacement. The code in the script is as under sed "s|MY_INP_Lab=""|MY_INP_Lab="${2}"|" file1, where $2=xyz_abc_mbk The EXPECTED output is in file1, all the instances ofMY_INP_Lab="" shall be replaced by... (2 Replies)
Discussion started by: vivekmattar
2 Replies

9. Shell Programming and Scripting

Use case insensitive variable in ksh shell scripting using sed or awk

I am using a variable called $variable in a pattern search to print from a starting variable to a constant value. the variable search should be case in sensitive. i tired using Ip at the end in the below command. but in ksh it is not working. sed -n "/$variable/,/constant/p" file i also... (11 Replies)
Discussion started by: johnjs
11 Replies

10. Shell Programming and Scripting

Need help with awk and sed scripting

I need help with sed and awk scripts to search for Symmetrix ID=000090009902 and then grep its child disk devices associated to the dead paths and display them only, so that those dead devices can be removed. test01:/#powermt display dev=all Pseudo name=hdiskpower0 Symmetrix ID=000090009902... (4 Replies)
Discussion started by: aix_admin_007
4 Replies
All times are GMT -4. The time now is 02:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy