script doinplace qui mélange les fonctionnalités des fonctions doinplace et evalp
This commit is contained in:
parent
0cf8e041f5
commit
cb0e553a4c
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||
urequire base
|
||||
|
||||
function display_help() {
|
||||
uecho "$scriptname: filtrer en place un fichier à travers une suite de commandes
|
||||
|
||||
USAGE
|
||||
$scriptname FILE COMMANDS...
|
||||
|
||||
Une ou plusieurs commandes peuvent être spécifiées, séparées par //
|
||||
Si on utilise des commandes avec des options, penser à utliser '--' pour séparer
|
||||
les options de ce script des options des commandes
|
||||
|
||||
En plus des commandes systèmes, il est possible d'utiliser toute fonction de
|
||||
nutools qui effectue des traitement sur un flux comme stripnl, filter_empty,
|
||||
merge_contlines, filter_comment, filter_conf, etc. Les fonctions nl2lf, nl2crlf,
|
||||
nl2cr, latin1compat et noaccents sont aussi disponibles par convenance.
|
||||
|
||||
OPTIONS
|
||||
-g, --ignore-error, --replace-always
|
||||
Normalement, le fichier n'est pas remplacé si la commande retourne une
|
||||
erreur. Avec cette option, le fichier est remplacé quel que soit le code
|
||||
de retour de la commande. A utiliser par exemple avec des commandes
|
||||
comme grep qui peuvent retourner FAUX s'ils ne trouvent pas le motif."
|
||||
}
|
||||
|
||||
function nl2lf() { _nl2lf; }
|
||||
function nl2crlf() { _nl2crlf; }
|
||||
function nl2cr() { _nl2cr; }
|
||||
function latin1compat() { _latin1compat; }
|
||||
function noaccents() { _noaccents; }
|
||||
|
||||
replace=
|
||||
args=(
|
||||
--help '$exit_with display_help'
|
||||
-g,--ignore-error,--replace-always replace=1
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
file="$1"; shift
|
||||
if [ -n "$replace" ]; then
|
||||
doinplacef "$file" evalp "$@"
|
||||
else
|
||||
doinplace "$file" evalp "$@"
|
||||
fi
|
||||
exit $?
|
Loading…
Reference in New Issue