Write a shell script

  

Write a shell script, change-lines, which will substitute a string for a replacement string for each occurrence of the string in files specified.
The original file will be saved, with the same filename with the .keep extension unless the -n option is present.
 

You may use a temporary file for this script.
 

Remember the search string and or the replacement string can have special characters in them, so you must use proper quoting techniques.
 

The script will use following options:
 

the option -s “string” for the search strings
the option -r “string” for the replacement string
the -n option to prevent a backup file from being created
the -h option to print a usage statement and exit
The script will exit with an error status and print an error message:
if the -s option is not present.
if the -r option is not present.
if the string is not specified with the -s option
if the string is not specified with the -r option
if there are any other options specified
if there are no input files specified
if the input file cannot be read by the current process
if the input file cannot be written by the current process
if you cannot create the backup file.
Here is the usage statement for the script:
change-lines [-n] -s search string -r replace string files …
-n do not backup the original file
-s search string the search for this string
-r replace string replace the search string with this string
-h print this message
Examples:
 

prompt> change-lines -s foobar -r FooBar *.c
This script will edit all the files *.c, and each occurrence of foobar it will be replaced by FooBar it will be replaced by FooBar.
Each file will be backed up.
 

prompt> change-lines -s “SHELL IS NOT FUN” -r “SHELL PROGRAMING IS A LOT OF FUN” /tmp/file1.txt
 

This script will edit all the file /tmp/file1.txt , and each occurrence of SHELL IS NOT FUN will replaced by the text,
SHELL PROGRAMMING IS A LOT OF FUN. A backup file /tmp/file1.txt.keep will be created.

Tags: No tags