GNU/Linux >> Tutoriels Linux >  >> Linux

Sed :Supprimer toutes les occurrences d'une chaîne, sauf la première ?

J'ai un fichier journal avec des horodatages. Parfois, il y a plusieurs horodatages sur une ligne. Maintenant, je voudrais supprimer tous les horodatages d'une ligne mais conserver le premier.

Je peux faire s/pattern//2 mais cela ne supprime que la deuxième occurrence et sed n'autorise pas quelque chose comme s/pattern//2- .

Des suggestions ?

Réponse acceptée :

Avec GNU sed :

sed 's/pattern//2g'

Le 2 spécifie que le deuxième motif et tout le resteg devrait supprimer. Cela conservera donc le premier.


Linux
  1. 3 façons de supprimer tous les fichiers d'un répertoire sauf un ou quelques fichiers avec des extensions

  2. Ne renvoyer que la chaîne correspondante dans Sed ?

  3. Supprimer tous les fichiers d'un dossier sauf le dernier (le plus récent) 20 ?

  4. Afficher tout le fichier jusqu'au match ?

  5. Envelopper le premier caractère d'une chaîne à l'aide de Sed ?

Comment supprimer les N premières lignes d'un fichier Ascii à l'aide des commandes Shell ?

Utilisez Rechercher pour trouver certains répertoires et supprimer tous les fichiers qu'il contient sauf un répertoire ?

sed débutant :modification de toutes les occurrences d'un dossier

Supprimez les cinq premiers caractères de n'importe quelle ligne d'un fichier texte sous Linux avec sed

Supprimez tous les fichiers sauf les 3 plus récents dans le script bash

Supprimer tous les dossiers à l'intérieur d'un dossier sauf un avec un nom spécifique