How would i write a shell script change-lines which will


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 original file will be saved, with the same filename with the .keep extension unless the -n option is present. I don't mind using temporary file for this script. The search string and/or the
replacement string can have special characters in them.

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
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.

Solution Preview :

Prepared by a verified Expert
Programming Languages: How would i write a shell script change-lines which will
Reference No:- TGS01257310

Now Priced at $20 (50% Discount)

Recommended (98%)

Rated (4.3/5)