GNU/Linux >> Tutoriels Linux >  >> Linux

Modification de fichiers à la volée sous Linux (écriture dans un fichier d'entrée sur un tube)

Essayez d'utiliser une éponge de moreutils comme celle-ci :

sed "s/root/toor/" /etc/passwd | grep -v joey | sponge /etc/passwd

Il collecte toute l'entrée avant d'écrire dans sa sortie.


Je suppose que sed pourrait toujours créer le fichier temporaire, mais ce qui suit pourrait faire ce que vous voulez? (L'utilisation de strace sur cela peut vous montrer si sed crée un fichier temporaire ou non).

sed -i '/bar/!d' foo.txt

L'exclamation inverse la correspondance, d est pour supprimer, donc cela supprime toutes les lignes qui n'ont pas de barre.


Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Déplacer des fichiers sur Linux sans mv

  3. Les meilleurs outils de transfert de fichiers sur Linux

  4. Exemples de commandes sed sous Linux

  5. La commande Linux sed ne modifie pas le fichier cible

Les 6 meilleures façons d'afficher des fichiers sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment décompresser les fichiers gz sous Linux

Gestion de fichiers Linux depuis le terminal

Comment compresser un fichier sous Linux

Fichier audio de tuyau Linux vers l'entrée du microphone