![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus! |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| L'ajout de colonnes de deux fichiers | chandra321 | De programmation et de script Shell | 7 | 05-06-2009 01:11 PM |
| ajoutant des colonnes | Kelam_Magnus | De programmation et de script Shell | 12 | 02-10-2009 10:56 AM |
| comparer les fichiers - ajout / soustraction / formatage des colonnes | oabdalla | De programmation et de script Shell | 7 | 06-13-2008 04:20 AM |
| Perl: ajouter des colonnes dans un fichier CSV avec les informations de chaque | dolo21taf | De programmation et de script Shell | 1 | 03-05-2008 02:52 AM |
| Ajout de colonnes à l'aide de fichiers excel Perl | dolo21taf | De programmation et de script Shell | 1 | 02-20-2008 07:13 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Ajout de colonnes à un fichier
Je veux choisir la première colonne d'un fichier appelé foo.csv quotidien. Le résultat est écrit dans le fichier toto.txt. Actuellement, le script suivant qui est utilisé pour:
cut-d,-f 1 foo.csv> toto.txt Un résultat typique de rendement: A12 A45 B11 B67 Que faut-il en plus que deux colonnes doivent être ajoutés avant l'écriture dans le fichier, à savoir un code (par exemple, 'abc') et la date actuelle, telle que le résultat typique de rendement: abc 2008-05-20 A12 abc 2008-05-20 A45 abc 2008-05-20 B11 abc 2008-05-20 B67 Comment cela peut-il être réalisé en particulier si la date (colonne 2) devrait être la date d'aujourd'hui? Dernière édition par figaro; au 05.16.2008 05:37 PM.. Motif: Simplification du problème |
|
||||
|
Merci pour votre réponse, il a très bien fonctionné. Une question:
Le délimiteur vous proposons est un espace. Comment cela peut-il être changé pour une virgule ","? " Et pour mémoire, le texte intégral de la déclaration doit être: Code:
cut -d, -f 1 foo.csv | awk -v d="$(date "+%Y-%m-%d")" '{print "abc", d, $1}' >foo.txt
Merci d'avance |
|
||||
|
awk est parfaitement capable de faire le travail de couper dans le même temps, si oui, qui peut être un peu optimisé. -F, awk séries de séparateur de champ à virgule et OFS \u003d FS causes à l'utiliser comme séparateur de champ de sortie ainsi que [Entrée] Field Separator.
Code:
awk -F, -v d="$(date "+%Y-%m-%d")" '{ OFS=FS; print "abc", d, $1 }' foo.csv >foo.txt
|
|
||||
|
J'ai du le problème suivant lors de l'exécution de ce script. À l'heure actuelle, se présente comme suit:
Code:
awk -F, -v dt="$(date "+%Y-%m-%d")" '{ OFS=FS; print "abc", dt, $1 }' foo.csv > foo.txt
Les premières lignes du fichier d'entrée foo.csv se présenter comme suit: SG70, B3B0M92, ANN8132R7036 ,25-juin-08 SG68, B3B2J97, ANN8132R6871 ,25-juin-08 ST71, B2Q4T68, ANN8132N4540 ,25-juin-08 SG67, B3B2J75, ANN8132R6798 ,24-juin-08 c'est donc une liste des codes dont les codes de la première colonne sont nécessaires uniquement. Prepend avec le code "abc" et la date, le fichier résultant foo.txt devrait tenir les données suivantes: "abc" ,2008-06-25, SG70 "abc" ,2008-06-25, SG68 "abc" ,2008-06-25, ST71 "abc" ,2008-06-25, SG67 Comment puis-je corriger le code ci-dessus et, de préférence, toujours tout sur une seule ligne? Merci d'avance |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|