Sponsored Content
Top Forums Shell Programming and Scripting Shell Script to replace tokens in multiple files Post 302252106 by rubin on Tuesday 28th of October 2008 08:23:57 PM
Old 10-28-2008
Quote:
Originally Posted by cbo0485
Code:
S_N="@A_S_N@"
B_D="@B_I_D@"
D_B="${B_D}/user_projects/@B_D_N@"
D_D="${D_B}/@D_N@"
S_U="t3://@U_S@:@A_S_P@"
A_U="t3://@A_U_S@:@A_S_P@"
K_D="@U_H@/keys/@B_D_N@/@K_S_D@"

....
Well, the situation has changed, your tokens have special characters in them, and you need to escape all of them. See the sample below and make the proper changes to your code.

Code:
awk -F= '/\$\{B_D\}\/user_projects\/@B_D_N@/{$0=$1"="v1}
          /t3:\/\/@U_S@:@A_S_P@/            {$0=$1"="v2}
          /@U_H@\/keys\/@B_D_N@\/@K_S_D@/   {$0=$1"="v3}

          ## repeat the same thing for all of your tokens, using their actual names, and escape special chars:     - $ / + * ? . etc 

                                  1' v1="$v1" v2="$v2" v3="$v3" "$file" > "$path"/"$file"

Quote:
awk -F= '/@TAG_1@/ <---- ( In case you missed it ) This must be ----> /@A_S_N@/ {$0=$1"="v1}

# same thing for the other lines, put actual token names !
....
Quote:
This is my code, tag names are changed and stuff like that, but this is the exact structure of it:
...
That's the point, the structure looks fine, but it's the names of the tokens that are important, the script depends totally on their unique names and formation.

The code worked fine for me, look at a test using the above adjustments, with three random tokens given above:

Code:
# ./replace.sh

enter 1st value:
"t3://U_S_Tag_Value:A_S_P_Tag_Value"
enter 2nd value:
"other variable goes here"
enter 3rd value:
"000 000 000"
enter full path to temp dir:
/home/user/test

------

$ ll test
-rw-r--r--   1 user       sys            557 Oct 28 19:37 file_1ABC
-rw-r--r--   1 user       sys            557 Oct 28 19:37 file_2ABC
-rw-r--r--   1 user       sys            557 Oct 28 19:37 file_3ABC
-rw-r--r--   1 user       sys            557 Oct 28 19:37 file_4ABC


$ cat test/file_2ABC

##################################
#Header of script, place values in variable names#
##################################
S_N="@A_S_N@"
B_D="@B_I_D@"
D_B="t3://u_s_Tag_Value:a_s_p_Tag_Value"
D_D="${D_B}/@D_N@"
S_U="other variable goes here"
A_U="t3://@A_U_S@:@A_S_P@"
K_D="000 000 000"
VAR_MAN_NAME="@MAN_NAME@"
VAR_PORT_NUM="@PORT_NUM@"
VAR_TEST_NUM="@TEST_NUM@"
###################################
#---------------Script Logic---------------------#
###################################
.
.
.
This section uses all the variable names, and doesn't use any flags


Last edited by rubin; 10-29-2008 at 12:19 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find and Replace in multiple files (Shell script)

hi guys, Suppose you have 100 files in a folder and you want to replace all occurances of a word say "ABCD" in those files with "DCBA", how would you do it ??? jatin (13 Replies)
Discussion started by: jatins_s
13 Replies

2. Shell Programming and Scripting

Shell script to parse/split input string and display the tokens

Hi, How do I parse/split lines (strings) read from a file and display the individual tokens in a shell script? Given that the length of individual lines is not constant and number of tokens in each line is also not constant. The input file could be as below: ... (3 Replies)
Discussion started by: yajaykumar
3 Replies

3. Shell Programming and Scripting

shell script to find and replace string in multiple files

I used the following script cd pathname for y in `ls *`; do sed "s/ABCD/DCBA/g" $y > temp; mv temp $y; done and it worked fine for finding and replacing strings with names etc. in all files of the given path. I'm trying to replace a string which consists of path (location of file) ... (11 Replies)
Discussion started by: pharos467
11 Replies

4. Shell Programming and Scripting

Complex Search/Replace Multiple Files Script Needed

I have a rather complicated search and replace I need to do among several dozen files and over a hundred occurrences. My site is written in PHP and throughout the old code, you will find things like die("Operation Aborted due to....."); For my new design skins for the site, I need to get... (2 Replies)
Discussion started by: UCCCC
2 Replies

5. Shell Programming and Scripting

Strip log file with multiple tokens

I have app log files that need to be cleansed for readability, and my sed skills are not adequate. Each line has a long multi-segment header, which I am trying to remove, example below: : 2010.05.26 20:38:00.640--DatabaseSessionImpl(21447570)--Connection(26209441)--Thread(Thread)--SELECT... (4 Replies)
Discussion started by: migurus
4 Replies

6. Shell Programming and Scripting

Need tokens in shell script

Hi All, Im writing a shell script in which I want to get the folder names in one folder to be used in for loop. I have used: packsName=$(cd ~/packs/Acquisitions; ls -l| awk '{print $9}') echo $packsName o/p: opt temp user1 user2 ie. Im getting the output as a string. But I want... (3 Replies)
Discussion started by: AB10
3 Replies

7. Shell Programming and Scripting

Script to find & replace a multiple lines string across multiple php files and subdirectories

Hey guys. I know pratically 0 about Linux, so could anyone please give me instructions on how to accomplish this ? The distro is RedHat 4.1.2 and i need to find and replace a multiple lines string in several php files across subdirectories. So lets say im at root/dir1/dir2/ , when i execute... (12 Replies)
Discussion started by: spfc_dmt
12 Replies

8. Shell Programming and Scripting

Shell script to find and replace contents of files in directory

Hi all This is my first post. Please bear with me with all my mistakes. I started learning shell since couple of days now and this might be quite basic for all, i want to search for files in a directory containing specific string and replace it with new string. The code i wrote is quite bulky... (2 Replies)
Discussion started by: theprogrammer
2 Replies

9. Shell Programming and Scripting

Getting error -: more tokens expected in shell script

Hi can someone help me to resolve the error for this condition if ] && ]; then i am passing the values $k and $kkm i am getting the error like "-: more tokens expected" Thanks in Advance (5 Replies)
Discussion started by: makigate
5 Replies

10. Shell Programming and Scripting

Script to replace stings in multiple text files

Good Evening Folks - Happy Friday! I have a need to replace a certain string in all .csv files from "0.00" to "#Missing" in my /app/hyp_app/files directory. Does anyone have a script they use regularly that's rather quick in performance? My files are rather large so I'm looking for a... (5 Replies)
Discussion started by: SIMMS7400
5 Replies
All times are GMT -4. The time now is 11:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy