IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Remplacer une colonne spécifique d'une ligne spécifique BASH


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Hamtaroux
    Femme Profil pro
    Doctorante
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Par défaut Remplacer une colonne spécifique d'une ligne spécifique BASH
    Bonjour,

    J'ai plusieurs fichiers, et je souhaite remplacer dans la 4éme lignes le 3eme caractère ; cependant je ne sais pas d'avance quelle est la valeur de ce caractère je sais juste sa position. Et je souhaite aussi remplacer une ligne entière (la ligne 5 par exemple) par une autre valeur ( par exemple "bonjour hi") sans connaitre la valeur initiale;

    fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    hello
    0
    1 1 45
     4 1 2
     4 5 7

    avec la commande sed; on peut remplacer la ligne entière, ce que j'ai pu voir sur un forum;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed  -i 'Ns/.*/ligne_remplacée/' file.txt

    Mais d'ailleurs est ce vraie? que signifie le .* cela remplace toute la ligne entière par "ligne_remplacé"

    Est-ce possible de remplacer une valeur qui est non connue , mais connaissant sa position dans le fichier par une nouvelle valeur?

    Merci d'avance,
    Hamtaroux

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    Bonjour,

    quand on travaille sur des colonnes, on utilise awk. (je me réfère au titre de ton sujet)

    si je me réfère à la description dans le corps du sujet, ce que tu veux faire est en effet faisable en bash : en lisant le fichier et en utilisant le Remplacement de variables

    et pour savoir ce que .* signifie, regarde le man 7 regex.

    PS: sed n'est pas bash; c'est une commande externe. comme ls ou vim, et un langage différent comme awk ou python,
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [Heureux-oli] Rechercher et remplacer une ligne
    Par Kiefer_Sutherland dans le forum Word
    Réponses: 3
    Dernier message: 07/09/2007, 22h25
  2. Remplacer une ligne d'un fichier texte par une autre
    Par devalender dans le forum WinDev
    Réponses: 12
    Dernier message: 24/07/2007, 19h51
  3. Remplacer une ligne d'un fichier texte
    Par mullinski dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/07/2006, 18h53
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. Remplacer une ligne dans une fichier
    Par norior dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2006, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo