Mes fichiers d'entrée d'origine est une liste de transactions de réservation. Je suis intéressé par les lignes qui sont dans les deux sections: a) les transactions et b) les remboursements. Ceux-ci sont toujours au bas des CSV et structurés.awk two regex conditions - structure complexe transactions alambiquées complexe csv
Je peux passer toutes les lignes au-dessus de la transaction de la section via la condition regex/transaction/{print}.
Je voudrais ajouter une colonne avec des chaînes "transaction ou remboursements" selon la section dans le csv. Donc je sais si un cloumn est une transaction ou un remboursement. quelque chose comme
IF ($2 = "transaction" || " " != "refunds"){$7=="transaction"};
IF ($2 = "refunds" || " " != "transaction"){$7=="refunds"}
Je partage le CSV et script.awk sur mon GDrive et espère que cela est acceptable: convoluted transaction list to be structured
transaction date via Details payment fee
28-02-2015 invoice txn1 44.1 0.19
28-02-2015 invoice txn2 27.7 0.19
07-03-2015 invoice txn3 43.1 0.19
09-03-2015 invoice txn4 36.8 0.19
12-03-2015 invoice txn5 26 0.19
13-03-2015 invoice txn6 43.7 0.19
13-03-2015 invoice txn7 25.6 0.19
15-03-2015 creditcard txn8 70.8 0.19
Sum 317.8 1.52
refunds Datum via Details payment 1.52
18-12-2014 invoice txn0 16
Sum 16
Mon résultat escompté est la suivante:
date via Details payment fee type
28-02-2015 invoice txn1 44.1 0.19 transaction
28-02-2015 invoice txn2 27.7 0.19 transaction
07-03-2015 invoice txn3 43.1 0.19 transaction
09-03-2015 invoice txn4 36.8 0.19 transaction
12-03-2015 invoice txn5 26 0.19 transaction
13-03-2015 invoice txn6 43.7 0.19 transaction
13-03-2015 invoice txn7 25.6 0.19 transaction
15-03-2015 creditcard txn8 70.8 0.19 transaction
18-12-2014 invoice txn0 16 refund
Mon extrait au moment:
BEGIN {OFS=FS=";"
print {date,payment option,detailspayment,fee,type }
/^transactions/,/^$/{
if ($3=="via) {next};
if ($6=="Sum") {next};
print $2 FS $3 FS $4 FS $5 FS $6 FS $7;
}
Cela fait longtemps que je n'ai pas utilisé awk, mais est-ce que cette ligne '/^Transaktionen /,/^ $ /' remplace Transaktionen par,? – user2141046
J'avais besoin d'imprimer toutes les lignes suivantes après/Transaktionen/a été trouvé. Le code donné semble fonctionner. Par le livre en utilisant/Transaktionen/{} il a imprimé seulement la ligne suivante. – prestalearner
Désolé pas clair. $ 0 est la ligne complète et vous l'utilisez certainement pour $ 1 qui est le 1er élément (champ). Ajouter un record (vous voulez dire champ je suppose) 14 $ mais imprimer seulement le champ partiel (9 sur 13). Donnez un petit échantillon de source et le résultat attendu vous aidera [pas d'accès à votre lien] – NeronLeVelu