# NAME subst - Greple module for text substitution # VERSION Version 1.01 # 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. # LICENSE Copyright (C) Kazumasa Utashiro. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # SEE ALSO [https://github.com/kaz-utashiro/greple-msdoc](https://github.com/kaz-utashiro/greple-msdoc) # AUTHOR Kazumasa Utashiro