27 lines
1018 B
Markdown
27 lines
1018 B
Markdown
---
|
|
title: "Préparer un dépot de tickets restaurant"
|
|
date: 2022-09-11T11:48:56+02:00
|
|
tags:
|
|
- shell, awk, oneliner
|
|
categories :
|
|
- commandline
|
|
draft: false
|
|
description : "awk pour la restauration"
|
|
slug : "tickets-restaurant-awk"
|
|
|
|
---
|
|
|
|
J'ai quelques tickets restaurant à trier et déposer au CRT. Le problème c'est qu'il faut leur donner le nombre exact et le montant.
|
|
|
|
C'est long et fastidieux. J'ai une douchette à code barres, ça va être moins long et moins fastidieux :-)
|
|
|
|
Dans le code barre, le montant est "hardcodé" entre le 13ème et le 16ème caractères. Il suffit donc de :
|
|
- scanner chaque ticket avec la douchette et renvoyer le tout dans un fichier
|
|
- extraire le chiffre entre la 13ème et le 16ème caractère inclus
|
|
- ajouter un point entre les 2
|
|
- faire la somme
|
|
|
|
mon onliner pour faire ça :
|
|
|
|
awk '{ print substr($0,13,4)}' TR.txt|awk '{ sub(/[0-9][0-9]/,"\&.")}1'|awk '{print $1; s+=$1} END {print "Total :" s " Nombre de TR : " NR " Pour une moyenne de : " s / NR "€"}'
|