Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 27/01/2010, 13h42   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 453
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 453
Points : 31
Points : 31
Par défaut commande find et awk

Bonjour,

Je souhaiterai effectuer la commande suivante pour avoir la liste des fichies modifiés , il y a plus de 14 jours. Et à partir de cette liste, je récupére le champs1.

Citation:
find . -mtime +14 -exec ls -la | awk '{print $1}' {} \;
Mon probléme reside dans la commande aprés le "|" awk '{print $1}'. car je n'ai aucun resultat en retour.

merci d'avance
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 14h38   #2
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Je trouve pas non plus.
Ca ?
Code :
A=`find . -mtime +1` && for i in $A ; do ls -la $i | awk '{print $1}' ; done
J'ai le même problème car je cherche a faire un sort et une copie du fichier sorté.

Dernière modification par noooop ; 27/01/2010 à 15h15.
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 10h38   #3
Membre éprouvé
 
Inscription : juillet 2006
Messages : 533
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 533
Points : 486
Points : 486
Citation:
Je souhaiterai effectuer la commande suivante pour avoir la liste des fichies modifiés , il y a plus de 14 jours. Et à partir de cette liste, je récupére le champs1.
Code :
1
2
find . -mtime +14 -exec ls -la '{}' \; | awk '{print $8}'
Ton originale commande ne marche pas (syntaxe incorrecte pour find).
En plus si tu veux le nom de fichiers soit il faut utiliser print $8 ou changer ls -a en gardant print $1
ttttnht est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 10h52   #4
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 453
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 453
Points : 31
Points : 31
Par défaut reponse

Pour répondre à mon besoin, j'ai trouvé la réponse :

Citation:
find . -mtime +14 -exec ls -la {} \; | awk '{print $1}'
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2010, 10h18   #5
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 129
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 129
Points : 8 749
Points : 8 749
Bonjour,

Ta commande affiche les droits unix de chaque fichier ayant plus de 14 jours. Est-ce bien ce que tu veux ?

Sinon, pour info, tu peux aussi utiliser la commande suivante, qui est beaucoup plus rapide, car ne faisant appel qu'a une commande externe au lieu de 2

Code :
find . -mtime +14 -ls | awk '{print $3}'
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h59.


 
 
 
 
Partenaires

Hébergement Web