Discussion:
Q: How would I write a shell script, change-lines, which will substitute a string for a replacement string for each occurance of the string in files specified?
The script will use
* the option -s "string" for the search string
* 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