trimmer les valeurs par défaut
This commit is contained in:
parent
70dba190ea
commit
284db6fa5b
12
uawk
12
uawk
|
@ -12,9 +12,7 @@ if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source "$(dirname "$0")/ulib/ulib" &&
|
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS awk
|
||||||
urequire DEFAULTS awk ||
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
# si on lance le script uawk, donner la possibilité de choisir l'outil
|
# si on lance le script uawk, donner la possibilité de choisir l'outil
|
||||||
if [ "$scriptname" == uawk ] && array_contains ALIASES "${1#l}"; then
|
if [ "$scriptname" == uawk ] && array_contains ALIASES "${1#l}"; then
|
||||||
|
@ -31,7 +29,7 @@ else
|
||||||
Clang=1
|
Clang=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$scriptname" == "awkcsv" ]; then
|
if [ "${scriptname#l}" == "awkcsv" ]; then
|
||||||
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour traiter des fichier csv
|
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour traiter des fichier csv
|
||||||
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
||||||
}
|
}
|
||||||
|
@ -42,7 +40,7 @@ $__AWKCSV_HELP"
|
||||||
|
|
||||||
"${prefix}awkcsv" "$@"
|
"${prefix}awkcsv" "$@"
|
||||||
|
|
||||||
elif [ "$scriptname" == "awkfsv2csv" ]; then
|
elif [ "${scriptname#l}" == "awkfsv2csv" ]; then
|
||||||
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour transformer un fichier à colonnes fixes en fichier csv
|
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour transformer un fichier à colonnes fixes en fichier csv
|
||||||
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
||||||
}
|
}
|
||||||
|
@ -53,7 +51,7 @@ $__AWKFSV2CSV_HELP"
|
||||||
|
|
||||||
"${prefix}awkfsv2csv" "$@"
|
"${prefix}awkfsv2csv" "$@"
|
||||||
|
|
||||||
elif [ "$scriptname" == "mergecsv" ]; then
|
elif [ "${scriptname#l}" == "mergecsv" ]; then
|
||||||
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: fusionner deux fichiers csv sur un champ commun
|
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: fusionner deux fichiers csv sur un champ commun
|
||||||
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
||||||
}
|
}
|
||||||
|
@ -64,7 +62,7 @@ $__MERGECSV_HELP"
|
||||||
|
|
||||||
"${prefix}mergecsv" "$@"
|
"${prefix}mergecsv" "$@"
|
||||||
|
|
||||||
elif [ "$scriptname" == "sortcsv" ]; then
|
elif [ "${scriptname#l}" == "sortcsv" ]; then
|
||||||
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: trier un fichier csv sur un champ
|
[ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: trier un fichier csv sur un champ
|
||||||
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C
|
||||||
}
|
}
|
||||||
|
|
19
ulib/awk
19
ulib/awk
|
@ -764,12 +764,14 @@ function awkcsv() { LANG=C lawkcsv "$@"; }
|
||||||
__AWKFSV2CSV_HELP="\
|
__AWKFSV2CSV_HELP="\
|
||||||
Transformer un flux fsv (colonnes à largeurs fixes) en csv
|
Transformer un flux fsv (colonnes à largeurs fixes) en csv
|
||||||
|
|
||||||
|
Chaque argument doit être de la forme [-]header:size. La colonne sera incluse
|
||||||
|
dans le fichier en sortie, sauf si elle est précédée de -
|
||||||
|
|
||||||
Analyse du flux en entrée:
|
Analyse du flux en entrée:
|
||||||
-s, --skip-lines nblines
|
-s, --skip-lines nblines
|
||||||
Sauter nblines au début du flux
|
Sauter nblines au début du flux
|
||||||
|
-r, --no-trim
|
||||||
Chaque argument doit être de la forme [-]header:size. La colonne sera incluse
|
Ne pas trimmer les valeurs à droite.
|
||||||
dans le fichier en sortie, sauf si elle est précédée de -
|
|
||||||
|
|
||||||
Flux en sortie:
|
Flux en sortie:
|
||||||
-n, --no-headers
|
-n, --no-headers
|
||||||
|
@ -777,9 +779,10 @@ Flux en sortie:
|
||||||
|
|
||||||
function lawkfsv2csv() {
|
function lawkfsv2csv() {
|
||||||
local -a args headersizes
|
local -a args headersizes
|
||||||
local skip_lines=0 show_headers=1
|
local skip_lines=0 trim_values=1 show_headers=1
|
||||||
if parse_opts \
|
if parse_opts \
|
||||||
-s:,--skip-lines: skip_lines= \
|
-s:,--skip-lines: skip_lines= \
|
||||||
|
-r,--no-trim trim_values= \
|
||||||
-n,--no-headers show_headers= \
|
-n,--no-headers show_headers= \
|
||||||
--show-headers show_headers=1 \
|
--show-headers show_headers=1 \
|
||||||
@ args -- "$@"; then
|
@ args -- "$@"; then
|
||||||
|
@ -812,7 +815,7 @@ function lawkfsv2csv() {
|
||||||
shift
|
shift
|
||||||
|
|
||||||
awkrun -f \
|
awkrun -f \
|
||||||
skip_lines:int="$skip_lines" show_headers:int="$show_headers" \
|
skip_lines:int="$skip_lines" trim_values:int="$trim_values" show_headers:int="$show_headers" \
|
||||||
headers[@] starts[@] sizes[@] \
|
headers[@] starts[@] sizes[@] \
|
||||||
"$__AWKCSV_FUNCTIONS"'
|
"$__AWKCSV_FUNCTIONS"'
|
||||||
BEGIN {
|
BEGIN {
|
||||||
|
@ -824,8 +827,10 @@ NR <= skip_lines { next }
|
||||||
{
|
{
|
||||||
line = $0
|
line = $0
|
||||||
$0 = ""
|
$0 = ""
|
||||||
for (i=1; i <= headers_count; i++) {
|
for (i = 1; i <= headers_count; i++) {
|
||||||
$i = substr(line, starts[i], sizes[i])
|
value = substr(line, starts[i], sizes[i])
|
||||||
|
if (trim_values) sub(/ *$/, "", value)
|
||||||
|
$i = value
|
||||||
}
|
}
|
||||||
formatcsv()
|
formatcsv()
|
||||||
print
|
print
|
||||||
|
|
Loading…
Reference in New Issue