#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)
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