Help in find and replace.


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Help in find and replace.
# 15  
Old 06-25-2008
Hi!
Following is the output:

Code:
[root@catinfo conf]# /opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha tomcat
tomcat:536c0b339345616c1b33caf454454d8b8a190d6c
[root@catinfo conf]#

# 16  
Old 06-25-2008
Give this a try:

Code:
perl -i.bak -pe'
s/(password=")([^"]*)/$1.`/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha $2|cut -d: -f2|tr -d "\n"`/e
' tomcat-users.xml

P.S. I'm trying to figure out how to parse within perl the output returned by the ` ` construct. I'm sure cut and tr are redundant.
# 17  
Old 06-25-2008
It shows some kind of syntax error for me..

Code:
[root@catinfo conf]# perl -i.bak -pe'
> s/(password=")([^"]*)/$1.`/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha $2|cut -d: -f2|tr -d "\n"`/e
> ' tomcat-users.xml
Bareword found where operator expected at -e line 2, near "s/(password=")([^"]*)/$1.`/opt"
syntax error at -e line 2, near "s/(password=")([^"]*)/$1.`/opt"
Transliteration pattern not terminated at -e line 2.

# 18  
Old 06-25-2008
Could you try it like this:

Code:
perl -i.bak -pe'BEGIN { $cmd = "/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha"; }
s/(password=")([^"]*)/
$1.`$cmd $2|cut -d: -f2|tr -d "\n"`
/e
' tomcat-users.xml

If it doesn't work, try it without tr:

Code:
perl -i.bak -pe'BEGIN { $cmd = "/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha"; }
s/(password=")([^"]*)/
$1.`$cmd $2|cut -d: -f2`
/e
' tomcat-users.xml


Last edited by radoulov; 06-25-2008 at 08:24 AM..
# 19  
Old 06-25-2008
MySQL Hats off to you!! Works like a charm!!

The first one works like a charm!!!

radoulov, hats off to you!! You are guru!!

We really have some gurus on this forum!!

Thanks everyone for all the replies and giving me the right direction!!



nua7
# 20  
Old 06-25-2008
Glad it worked, but the code is ugly,
this should be more efficient (but still ugly):
Code:
perl -i.bak -pe'
  /password="([^"]*)/ and $pw = $1;
  $pw = `/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha $pw`;
  chomp $pw; $pw =~ s/.*?://; s/(password=")([^"]*)/$1$pw/
  ' tomcat-users.xml

# 21  
Old 06-25-2008
I tried this command, but gives a syntax error to me..

Is it working fine at your end..?

Code:
[root@catinfo conf]# perl -i.bak -pe'
>   /password="([^"]*)/ and $pw = $1;
>   $pw = `/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha $pw`;
>   chomp $pw; $pw =~ s/.*?://; s/(password=")([^"]*)/$1$pw/
>   ' tomcat-users.xml
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha  RealmBase -a <algorithm> [-e <encoding>] <credentials>'
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha  RealmBase -a <algorithm> [-e <encoding>] <credentials>'
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `/opt/coreservices/tomcat-5.5.9/bin/digest.sh -a sha  RealmBase -a <algorithm> [-e <encoding>] <credentials>'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find and replace?

Hi All, I have data like below 1 CREATE TABLE temp123 2 ( 3 col1 INTEGER, 4 col2 CHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC, 5 col3 DECIMAL(19,0), 6 col4 VARCHAR(80) CHARACTER SET LATIN NOT CASESPECIFIC, 7 start_dt DAte FORMAT 'YY/MM/DD', 8 end_dt DATE FORMAT 'YY/MM/DD', 9 datecol1... (6 Replies)
Discussion started by: baranisachin
6 Replies

2. Shell Programming and Scripting

Find and Replace

i am having a file test1.txt and its contents is as follows. <abcaaa bbb ccc ddd> <dddeeeffff> <my computer> <abcmydocuments> Now I need to find the text abc and should be replaced as follows. <abc> <dddeeeffff> <my computer> <abc> First line has the text "abc" and it has to be... (3 Replies)
Discussion started by: kmanivan82
3 Replies

3. Shell Programming and Scripting

Find/Replace

I have the following requirement in the shell script 1. I have more than 200 shell script files. I need to find out how many shell scripts have "sqlplus /" in the shell file 2. I need to replace all the shell scripts in the single command for example: connect scott/scott replace as ... (6 Replies)
Discussion started by: pmsuper
6 Replies

4. Solaris

find/replace?

Dear All To find a file, according to you, I tried as: #find / -name file-name -print To find a string inside the files , I tried as : #find / -name "*" |xargs grep "string" Can you please let me know how can I try for find/replace (i.e. finding the intended string inside the text files... (6 Replies)
Discussion started by: hadimotamedi
6 Replies

5. Shell Programming and Scripting

Find Replace

Need to convert echo "7 6" to $7,$6 But the count of numbers can increase say echo "7,6,8,9" tried this didn't work echo "7 6" | sed 's/\(*\)/\1/' But did not help much (3 Replies)
Discussion started by: dinjo_jo
3 Replies

6. UNIX for Dummies Questions & Answers

find and replace

I am looking to find and replace a string in a file, can anyone suggest a global find and replace. looked at previous replies on other queries but none seem to address what i am looking for. aint familiar with sed so trying to use ordinary unix commands if possible Thanks in advance (2 Replies)
Discussion started by: SummitElse
2 Replies

7. Shell Programming and Scripting

find and replace

hi, i have a data in a file like below: 100 8388kmn844., 8488 200 8398kmn894., 8398 i want replace from kmn to . as null. output should be 100 8388, 8488 200 8398, 8398 Plz help. Thanks in advance (1 Reply)
Discussion started by: javeed7
1 Replies

8. Shell Programming and Scripting

find and replace

Hi, There are some "n" files in a directory which contains comman string.A command to find and replace the string in all the files without looping. like if i am in a directory : # find ./ -name ".txt" | xargs sed -e 's/test/tst' Upto here is performed correctly and i want to... (4 Replies)
Discussion started by: rakshit
4 Replies

9. UNIX for Advanced & Expert Users

Please help with find and replace:

Hi I am trying to find a product code hightlighted in red, and re-insert it at another place on the same file. I shall be grateful if anyone can help me with this. Stuck and have deadline!!:confused: Original Line: (I can get source data in one of these two formats) ISD=977155185403901+DIE... (2 Replies)
Discussion started by: gloovy_tb
2 Replies

10. UNIX for Dummies Questions & Answers

find and replace

I have statement like this column_id.columnname=="value" in unix i want to modify above statement to variable1=="value" that means i have to replace the string before "==" by string "variable1" second catch is, in statement instead of "==" you can have any arithmatic comarision... (7 Replies)
Discussion started by: mahabunta
7 Replies
Login or Register to Ask a Question