GNU/Linux >> Tutoriels Linux >  >> Linux

La commande Linux sed ne modifie pas le fichier cible

Si vous souhaitez stocker les modifications de sed retour au fichier utiliser le -i choix :

$ cat file
<head>abc</head>
    <td>hello</td>
      <td>hello</td>
        <td>hello</td>
    <td>abc</td>
     <td>abc</td>
<h1>abc</h1>

$ sed -ni '/<td>/{s/^\s*//;s/abc//;s/<\/\?td>//g;p}' file

$ cat file
hello
hello
hello

Modifier : L'expression rationnelle est plus claire si nous utilisons un séparateur différent avec sed et utilisez l'option d'expression régulière étendue -r :

$ sed -r 's_</?td>__g' file
    hello
      hello
        hello
    abc
     abc

Le ? rendre le caractère précédent optionnel donc le / n'a pas besoin d'être présent pour que l'expression rationnelle corresponde à <td> et </td> dans une.


Dans la commande sed Utilisez l'option -i pour modifier le fichier lui-même , sinon, la sortie s'imprime à l'écran mais le fichier reste le même.

La formule serait :

sed -i <targetFile> 's/<beforeText>/<afterText>/g' <targetFile>

Par exemple :

sed -i myCredentials.txt 's/secretPassword/xxx/g' myCredentials.txt

Une autre option - sortie vers un autre fichier et renommez-le :

sed 's/secretPassword/xxx/g' myCredentials.txt > temp.txt
rm myCredentials.txt && mv temp.txt myCredentials.txt

pour plus d'informations, consultez la documentation :

L'utilitaire sed lit les fichiers spécifiés, ou l'entrée standard si aucun fichier n'est spécifié, en modifiant l'entrée comme spécifié par une liste de commandes . L'entrée est ensuite écrite sur la sortie standard. Une seule commande peut être spécifiée comme premier argument de sed. Plusieurs commandes peuvent être spécifiées à l'aide des options -e ou -f. Toutes les commandes sont appliquées à l'entrée dans l'ordre dans lequel elles sont spécifiées, quelle que soit leur origine.

-i Modifier les fichiers sur place , enregistrant les sauvegardes avec l'extension spécifiée. Si une extension de longueur nulle est donnée, aucune sauvegarde ne sera enregistrée. Il n'est pas recommandé de donner une extension de longueur nulle lors de l'édition sur place de fichiers, car vous risquez de corrompre ou d'avoir un contenu partiel dans des situations où l'espace disque est épuisé, etc.


Linux
  1. Comment utiliser la commande Linux sed

  2. Comment utiliser la commande Tar sous Linux

  3. La commande Linux Sed :utilisation et exemples

  4. Comment la commande Sed '1!g;h;$!d' inverse-t-elle le contenu d'un fichier ?

  5. Exemples essentiels de la commande File sous Linux

Commande Chown sous Linux (modifier la propriété du fichier)

Comment changer la priorité d'un processus sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux

Les 50 exemples pratiques de la commande SED sous Linux

Comment utiliser la commande Gzip sous Linux ?