Sponsored Content
Top Forums Shell Programming and Scripting Using sed to edit multiple files Post 303028319 by edstevens on Friday 4th of January 2019 10:35:35 AM
Old 01-04-2019
Using sed to edit multiple files

Created a shell script to invoke sed to edit multiple files, but am missing something.
Here's the shell script:
Code:
oracle:$ cat edit_scripts.sh
#!/bin/sh
#------------------------------------------------------------------------------
# edit_scripts.sh
#
# This script executes sed to make global edits to the template files
#------------------------------------------------------------------------------
for i in *.sh; do
  sed -f script.sed < $i
done
#
for i in *.sql; do
  sed -f script.sed < $i
done

As you can see, I'm using a script file 'script.sed' to supply the actual editing commands:
Code:
oracle:$ cat script.sed
s/@yymmdd@/181016/g
s/@gi patch num@/12345678/g
s/@jvm patch num@/87654321/g

And for testing purposes, I have one .sh script to be edited:
Code:
oracle:$ ll *.sh
-rwxr-x--- 1 oracle oinstall 359 Jan  3 14:30 edit_scripts.sh
-rw-r--r-- 1 oracle oinstall 163 Jan  3 14:46 sed_sample.sh

oracle:$ cat sed_sample.sh
#-------------------
#  This should be the date: @yymmdd@
#  This should be the gi patch num:  @gi patch num@
#  This should be the jvm patch num: @jvm patch num@

But when I execute edit_scripts.sh, sed_sample.sh is not modified:
Code:
oracle:$ ./edit_scripts.sh
#!/bin/sh
#------------------------------------------------------------------------------
# edit_scripts.sh
#
# This script executes sed to make global edits to the template files
#------------------------------------------------------------------------------
for i in *.sh; do
  sed -f script.sed < $i
done
#
for i in *.sql; do
  sed -f script.sed < $i
done
#-------------------
#  This should be the date: 181016
#  This should be the gi patch num:  12345678
#  This should be the jvm patch num: 87654321
./edit_scripts.sh: line 12: *.sql: No such file or directory

oracle:$ cat sed_sample.sh
#-------------------
#  This should be the date: @yymmdd@
#  This should be the gi patch num:  @gi patch num@
#  This should be the jvm patch num: @jvm patch num@

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed across multiple files

I've got a bunch of files (40 or so) and in each there is a substitution I need to perform. I execuet the following sed command but it just make the changes to the screen without affecting the original file. sed "s/, LA/,LA/g" * (All files in the directory need this update). So I tried... (4 Replies)
Discussion started by: peter.herlihy
4 Replies

2. UNIX for Dummies Questions & Answers

Edit Multiple Files in VI

Here's what I have... $ vi foo1 - open foo1 and work around for a while. I yank a few lines into a buffer and then :w to save. Next I :e foo2 to open foo2 and paste my buffer. I :w to save, but I would like to then be able to go directly back into foo1 where I was before I opened foo2. ... (4 Replies)
Discussion started by: djschmitt
4 Replies

3. Shell Programming and Scripting

how to use multiple files in sed with w command

i have a command like : sed -n 's/^* /&/w even' <file if i want to write to multiple files like sed -n 's/^* /&/w zero two three' < file its not working it is taking "zero two three" as a single file i want to write to 3 seperate files . pls can anyone help me (2 Replies)
Discussion started by: santosh1234
2 Replies

4. UNIX for Dummies Questions & Answers

sed on multiple files?

Hi, I want to do a search and replace on multiple text files. Can I use sed to do this? i.e. I want to do something like: $ sed *.html -e 's/<\/body>/<\!-- blah -->\n<\/body>/' | grep -1 body ... then pipe/ channel the results back into the same files that were searched. how would... (2 Replies)
Discussion started by: mgrahamnz
2 Replies

5. UNIX for Dummies Questions & Answers

SED on multiple files

Hello all, Search & replace works fine using sed on a single file. Ex: sed -i 's/day/night/g' test1.sh There are many *.sh files in my current directory that I would like use sed on. I tried running the sed command using wild card but it did not work. sed -i 's/day/night/g' *.sh ... (7 Replies)
Discussion started by: luft
7 Replies

6. Shell Programming and Scripting

Read and edit multiple files using a while loop

Hi all, I would like to simply read a file which lists a number of pathnames and files, then search and replace key strings using a few vi commands: :1,$s/search_str/replace_str/g<return> but I am not sure how to automate the <return> of these vis commands when I am putting this in a... (8 Replies)
Discussion started by: cyberfrog
8 Replies

7. UNIX for Dummies Questions & Answers

best method of replacing multiple strings in multiple files - sed or awk? most simple preferred :)

Hi guys, say I have a few files in a directory (58 text files or somthing) each one contains mulitple strings that I wish to replace with other strings so in these 58 files I'm looking for say the following strings: JAM (replace with BUTTER) BREAD (replace with CRACKER) SCOOP (replace... (19 Replies)
Discussion started by: rich@ardz
19 Replies

8. Shell Programming and Scripting

SED command using multiple input files

What is the syntax to use multiple input files in a SED command. i.e. substitute a word with a phrase in every file in a directory. for every file in /usr/include that has the word "date" in the file grep -l '\<date\>' /usr/include/*.h find each occurrence of the word "time" in the file &... (3 Replies)
Discussion started by: sheoguey
3 Replies

9. Shell Programming and Scripting

Help require to edit multiple files

I have 6 different pipe delimiter files. My loads failing due to missing company code. File1: 31 st field is company code. 402660076310|2014-12-10 17:22:39|2280361|MRYKI|1||CA|92507|US||1|1|0|0|0||N|A1|ONT|1001891771660009250700402660076310|WM|0201|RALA |2014-12-12|5|2014-12-12|5||FRI - 12... (4 Replies)
Discussion started by: srikanth38
4 Replies

10. Shell Programming and Scripting

sed parser behaving strange on replacing multiple words in multiple files

I have 4000 files like $cat clus_grp_seq10_g.phy 18 1002 anig_OJJ65951_1 ATGGTTTCGCAGCGTGATAGAGAATTGTTTAGGGATGATATTCGCTCGCGAGGAACGAAGCTCAATGCTGCCGAGCGCGAGAGTCTGCTAAGGCCATATCTGCCAGATCCGTCTGACCTTCCACGCAGGCCACTTCAGCGGCGCAAGAAGGTTCCTCG aver_OOF92921_1 ... (1 Reply)
Discussion started by: sammy777888
1 Replies
WHAT-PATCH(1)						      General Commands Manual						     WHAT-PATCH(1)

NAME
what-patch - detect which patch system a Debian package uses SYNOPSIS
what-patch [options] DESCRIPTION
what-patch examines the debian/rules file to determine which patch system the Debian package is using. what-patch should be run from the root directory of the Debian source package. OPTIONS
Listed below are the command line options for what-patch: -h, --help Display a help message and exit. -v Enable verbose mode. This will include the listing of any files modified outside or the debian/ directory and report any additional details about the patch system if available. AUTHORS
what-patch was written by Kees Cook <kees@ubuntu.com>, Siegfried-A. Gevatter <rainct@ubuntu.com>, and Daniel Hahler <ubuntu@thequod.de>, among others. This manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>. Both are released under the GNU General Public License, version 3 or later. SEE ALSO
The Ubuntu MOTU team has some documentation about patch systems at the Ubuntu wiki: https://wiki.ubuntu.com/PackagingGuide/PatchSystems cdbs-edit-patch(1), dbs-edit-patch(1), dpatch-edit-patch(1) DEBIAN
Debian Utilities WHAT-PATCH(1)
All times are GMT -4. The time now is 02:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy