The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > UNIX pour les nuls Questions et réponses
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-16-2008
figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Messages: 268
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
  #2 (permalink)  
Old 05-16-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2007
Messages: 321
Code:
awk -v d="$(date "+%Y-%m-%d")" '{print "abc", d, $1}' foo.csv > foo.txt
  #3 (permalink)  
Old 05-17-2008
figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Messages: 268
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
S'il ya plus d'efficacité dans la présente déclaration à faire, s'il vous plaît faites le moi savoir.

Merci d'avance
  #4 (permalink)  
Old 05-17-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
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
  #5 (permalink)  
Old 06-25-2008
figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Messages: 268
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
La réponse est "illégale nom de variable".

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
  #6 (permalink)  
Old 07-21-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
Essayez avec nawk, bawk, mawk, gawk, XPG4 awk ou si vous avez l'un de ces installé sur votre système.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 07:42 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0