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 16/05/2014, à 13:27

GP974

remplacer ligne dans un fichier

j'ai besoin d'une aide en Bash

j'ai des fichiers qui contiennent plusieurs information d'ont une qui est de la forme suivante

des lignes avant
'Name' : ' *un chemin* '
des ligne aprés


Il faut que je puisse mettre a jour le chemin en gardant le même syntaxe(entre '') et les lignes avant et aprés bien sur
j'ai essayer a coup de cat , grep , sed mais rien ne fonctionne

quelqu'un a une idée ?

Merci

Dernière modification par GP974 (Le 16/05/2014, à 13:28)


Ubunteros depuis 10.04 Restez libre avec Linux :)
Fixe : i7 i930@3.2ghz | DDR3 12go | Amd Rx580 | SSD - 120Go S2 | 14.04.05 & Arch
Fixe2 : I5 6500U@2.8ghz | DDR4 8GO | SSD 120 M2 | Arch
Développeur de nvidiux

Hors ligne

#2 Le 16/05/2014, à 14:36

casperfr

Re : remplacer ligne dans un fichier

tiens un ptit script

nano rempl.sh
#! /bin/bash
function rempl {
        sudo sed -i -e "s/.*$1.*/$2/g" $3
}
rempl "'Name' : " "'Name' : ' *un chemin* '" fichier_a_modifier

$1 ligne rechercher
$2 ligne de remplacement
$3 fichier ou il faut effectué la manip

Hors ligne

#3 Le 16/05/2014, à 14:49

Shanx

Re : remplacer ligne dans un fichier

Salut,

un autre script en python :

#/usr/bin/python2 
#coding: utf-8

import sys, fileinput

ancien = "'Name' : ' *super chemin* '"
nouveau = "'Name' : ' *autre chemin* '"

try:
    filename = sys.argv[1]
except:
    print 'Donner le nom du fichier en argument.'
    sys.exit(1)

for line in fileinput.input(filename, inplace=True): 
      print line.replace(ancien, nouveau),

Mettre en argument le fichier à modifier, et préciser dans le script quelle est la ligne à modifier (il faut la mettre en entier) et par quoi.

Dernière modification par Shanx (Le 16/05/2014, à 14:50)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#4 Le 19/05/2014, à 08:42

GP974

Re : remplacer ligne dans un fichier

Merci a tous les 2 ça fonctionne smile


Ubunteros depuis 10.04 Restez libre avec Linux :)
Fixe : i7 i930@3.2ghz | DDR3 12go | Amd Rx580 | SSD - 120Go S2 | 14.04.05 & Arch
Fixe2 : I5 6500U@2.8ghz | DDR4 8GO | SSD 120 M2 | Arch
Développeur de nvidiux

Hors ligne