The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Parse XML liste des tâches à créer chaque fichier task.xml Missi De programmation et de script Shell 3 11-11-2008 02:20 PM
commentaire Décommentez et unique tâche de multiples tâches madhusmita De programmation et de script Shell 9 06-18-2008 09:42 AM
Arithmetic Operators filda UNIX pour les nuls Questions et réponses 0 06-13-2008 12:55 AM
Puis-je utiliser avec wc-l expression arithmétique? lalelle De programmation et de script Shell 3 08-11-2007 06:44 PM
l'arithmétique en ksh amon De programmation et de script Shell 12 02-05-2007 02:43 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 02-11-2009
marcelino marcelino is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 4
sed ou awk pour tâche arithmétique

J'ai le fichier de ce type de format

01.02.09 08:30
bob
jill
marque

01.04.09 07:00
bob
jill
marque
tom

Je voudrais compter le nom après la date / ime ligne (01.02.09 08:30) et ajouter ce nombre après l'heure comme celle-ci

01.02.09 08:30 3
01.04.09 07:00 4

Je ne suis pas sur les noms après le dépouillement de sorte que je puisse les laisser ou avec la bande sed si elle simplifie le processus. Je pourrais aussi rediriger la sortie de la date / l'heure et compter à la deuxième fichier si cela rend plus simple. La seule chose que j'ai vraiment besoin, c'est la date et l'heure et le numéro sur la même ligne.

Quel est le meilleur outil pour accomplir cela et quelqu'un peut-il donner un exemple?
  #2 (permalink)  
Old 02-11-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5119
Code:
nawk 'BEGIN {RS=FS=""} {print $1, NF-1}' myFile
  #3 (permalink)  
Old 02-11-2009
marcelino marcelino is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 4
Près d'elle

Nice ...

J'ai dû ajouter de l'espace "" et le changement NF-1 à la NF-2 pour obtenir précis pour toutes les lignes sauf la dernière et la première entrée. NF-1 donne le bon de sortie pour la dernière ligne de compte seulement. J'ai 9000 lignes, je avoir le dernier et le premier faux pas est importante.

L'autre problème est que la production n'a que le temps dans la ligne comme ceci:

10:00 4
11:00 6

J'ai besoin de la date de la sortie. Actuellement à la recherche par le biais du nawk manuel de savoir comment combiner l'heure et la date de sortie. Toute rapide des suggestions? BTW, la course nawk 1.3.3 d'Ubuntu 8.10
  #4 (permalink)  
Old 02-11-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registered User
  
 

Date d'inscription: juin 2007
Lieu: Beijing Chine
Posts: 1,082
entrée:
Code:
01.02.09 08:30
bob
jill
mark 

01.04.09 07:00
bob 
jill 
mark
tom

01.02.09 09:30
bob
jill
mark 
hj
gh
fm

01.04.09 10:00
bob 
jill 
mark
tom
aaa
bbb
ccc
sortie:
Code:
01.02.09 08:30 3
01.04.09 07:00 4
01.02.09 09:30 6
01.04.09 10:00 7
code:
Code:
#!/usr/bin/perl
$/="\n\n";
open FH,"<a.txt";
while(<FH>){
	my @temp=split("\n",$_);
	print $temp[0]," ",$#temp,"\n";
}
Code:
awk '/[0-9]*\.[0-9]*\.[0-9]* [0-9][0-9]:[0-9][0-9]/{
	a=$0
	next
}
/^ *$/{
	print a" "n
	n=0
	next
}
{
 n++
}
' a.txt

Dernière édition par summer_cherry; au 02.11.2009 11:54 PM..
  #5 (permalink)  
Old 02-12-2009
marcelino marcelino is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 4
summer_cherry et awk perl script-a fonctionné parfaitement que c'est ... J'ai juste besoin de comprendre comment vous avez fait ... merci ...
  #6 (permalink)  
Old 02-12-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5119
Citation:
Posté par marcelino View Post
Nice ...

J'ai dû ajouter de l'espace "" et le changement NF-1 à la NF-2 pour obtenir précis pour toutes les lignes sauf la dernière et la première entrée. NF-1 donne le bon de sortie pour la dernière ligne de compte seulement. J'ai 9000 lignes, je avoir le dernier et le premier faux pas est importante.

L'autre problème est que la production n'a que le temps dans la ligne comme ceci:

10:00 4
11:00 6

J'ai besoin de la date de la sortie. Actuellement à la recherche par le biais du nawk manuel de savoir comment combiner l'heure et la date de sortie. Toute rapide des suggestions? BTW, la course nawk 1.3.3 d'Ubuntu 8.10
Hmmm .. très étrange ...
mar.txt:
Code:
01.02.09 08:30
bob
jill
mark

01.04.09 07:00
bob
jill
mark
tom
nawk 'BEGIN (FS \u003d RS \u003d "") (print $ 1, NF-1)' mar.txt

sortie:
Code:
01.02.09 08:30 3
01.04.09 07:00 4
Looks fine to me. Enregistrez votre fichier d'entrée (ou une partie de celui-ci) à l'aide vB Code tags.
  #7 (permalink)  
Old 02-12-2009
marcelino marcelino is offline
Registered User
  
 

Date d'inscription: février 2009
Messages: 4
réponse

En utilisant les mêmes données que vous avez eu par exemple, j'ai reçu le texte suivant:

nawk 'BEGIN (FS \u003d RS \u003d "") (print $ 1, NF-1)' donnees.txt
0 27
0 31

Ajout d'espace pour ""

$ Nawk 'BEGIN (FS \u003d RS \u003d "") (print $ 1, NF-1)' donnees.txt
01.02.09 0
08:30 4
07:00 4

Changer de NF-2

$ Nawk 'BEGIN (FS \u003d RS \u003d "") (print $ 1, NF-2)' donnees.txt
01.02.09 -1
08:30 3
07:00 3
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 08:23 AM.


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