NAME
subst - Greple module for text substitution
SYNOPSIS
greple -Msubst [ options ]
--subst_file spec_file
--subst_from string
--subst_to string
--diff
--diffcmd command
--create
--replace
DESCRIPTION
This greple module supports word substitution in text data.
Substitution can be indicated by option --subst_from and --subst_to, or specification file.
Next command replaces all string "FROM" to "TO".
greple -Msubst --subst_from FROM --subst_to TO FROM
Of course, you should rather use sed in this case. Option --subst_from and --subst_to can be repeated, and substitution is done in order.
Using --subst_file option, you can prepare these substitution list in the file. Suppose the file cotains following data:
Monday Mon.
Tuesday The.
Wednesday Wed.
Thursday Thu.
Friday Fri.
Saturday Sat.
Sunday Sun.
Next command converts day-of-week name to abbreviation form.
greple -Msubst --subst_file SPEC '\b[A-Z][a-z]+' ...
Field "//" in spec file is ignored, so this file can be written like this:
Monday // Mon.
Tuesday // The.
Wednesday // Wed.
Thursday // Thu.
Friday // Fri.
Saturday // Sat.
Sunday // Sun.
You can use same file by greple's -f option and string after "//" is ignored as a comment in that case.
greple -Msubst --subst_file SPEC -f SPEC ...
This is equivalent to search next pattern, and replace them. This is bad example, though.
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Actually, it takes the second last field as a target, and the last field as a substitution string. All other fields are ignored. This behavior is useful when the pattern requires longer text than the string to be converted. See the next example:
Black-\KMonday // Monday Friday
Pattern matches to string "Monday", but requires string "Black-" is preceeding to it. Substitution is done just for string "Monday", which does not match to the original pattern. As a matter of fact, look-ahead and look-behind pattern is removed automatically, next example works as expected.
(?<=Black-)Monday // Friday
Combining with greple's other options, it is possible to convert strings in the specific area of the target files.
- --diff
-
Produce diff output of original and converted text.
- --diffcmd command
-
Specify diff command name used by --diff option. Default is "diff -u".
- --create
-
Create new file and write the result. Suffix ".new" is appended to original filename.
- --replace
-
Replace the target file by converted result. Original file is renamed to backup name with ".bak" suffix.
BUGS
This module is made for Japanese text processing, and it is difficult to imagine the useful situation handling ascii.