Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/07/2015, à 21:50

Dj Shorty

[Résolu]Rediriger le résultat d'une commande dans une ligne fichier.

Bonjour à vous,

Je suis en train de faire un script sous BASH, j'aimerai que le résultat d'une commande comme celle ci :

cat /etc/passwd | cut -d'y' -f1 | cut -d':' -f2 | sed ou >>

J'aimerais renvoyé le résultat de ma commande vers une ligne spécifique d'un fichier.
Je sais que sed -i '/mot dans fichier/a \Mot mis après mot dans fichier' script_final.sh

Mais comment faire pour que le résultat de la commande cat sois orienté sur la 128ème lignes du fichier script_final.sh par exemple ou n'importe quel autre fichier.

J'ai pour le moment fait en sorte que ma commande sois orienter de cette manière :

cat /etc/passwd | cut -d'y' -f1 | cut -d':' -f2 >> import.txt
Du coup les résultats serons mis dans le fichier import.txt, et il est peut-être possible de pouvoir prendre une ligne du fichier import.txt pour l'importer sur la 128ème ligne d'un autre fichier et ainsi de suite pour d'autre ligne de mon script_final.sh.

En gros j'utilise un script qui va exécuter des commandes et avoir plusieurs résultats et ses résultats là je voudrais les mettre dans un autre script qui sera créer grâce à ses résultat là.

J'espère m'être bien expliqué
Merci d'avance pour votre aide.

Dernière modification par Dj Shorty (Le 31/07/2015, à 03:00)

Hors ligne

#2 Le 30/07/2015, à 09:20

credenhill

Re : [Résolu]Rediriger le résultat d'une commande dans une ligne fichier.

hello
pour insérer le résultat d'une commande après la ligne 128

commande  | sed -e '128 r /dev/stdin' fichier

pour insérer un fichier après la ligne 128

sed '128 r fichier2' fichier

Hors ligne

#3 Le 31/07/2015, à 02:47

Dj Shorty

Re : [Résolu]Rediriger le résultat d'une commande dans une ligne fichier.

Bonsoir,

Merci pour ta réponse je test sa dès maintenant je te tiens au courant.
Si je comprend bien la commande san dire de bêtise on demande donc à SED après la ligne 128 de read l'info dans /dev/stdin pour la mettre dans le fichier c'est sa ?

EDIT : Je valide pour la commande mais pour mon test j'ai remarqué qu'il fallait tout de même que la ligne dans le fichier sois existante déjà dans le fichier.

Ex :

toto
tata
titi

echo 'tutu' | sed -e '128 r /dev/stdin' test.txt ne fonctionnera pas mais...
echo 'tutu' | sed -e '3 r /dev/stdin' test.txt affichera bien :

toto
tata
titi
tutu

Merci pour ton aide wink c'est parfait je met Résolu

Dernière modification par Dj Shorty (Le 31/07/2015, à 02:59)

Hors ligne