GNU/Linux >> Tutoriels Linux >  >> Linux

Comment générer un fichier et ignorer les lignes commençant par "?" ?

Je fais svn status --show-updates et puis je veux soit

  • Q1 :
    ignorer (ne pas afficher) les lignes commençant par ?
  • Q2 :
    afficher uniquement les lignes commençant par * Notez qu'il y a peu d'espaces avant l'apparition de *. Cela signifie que * n'est pas le premier caractère de la ligne.

Comment puis-je faire cela ?

Réponse acceptée :

Vous pouvez exprimer ces conditions à l'aide d'expressions régulières et utiliser grep pour filtrer les résultats en fonction de ceux-ci.

Le premier est ^? . Le carat est un caractère spécial qui représente le début d'une ligne; de sorte que l'expression corresponde au début de la ligne immédiatement suivi d'un ? .

Le second est ^ *\* . Le * est un caractère spécial qui qualifie le caractère précédent - cela signifie que le caractère précédent peut apparaître zéro ou plusieurs fois. Depuis * est un caractère spécial, celui que vous recherchez doit être échappé, donc \* . Ainsi, cette expression correspondra au début d'une ligne suivi de zéro ou plusieurs espaces, suivi d'un astérisque.

Pour votre première condition, utilisez le -v option pour grep pour annuler les résultats.

Alors finalement,

svn status --show-updates | grep -v '^?'

ou

svn status --show-updates | grep '^ *\*'

Les expressions régulières sont très puissantes, c'est pourquoi de nombreux outils Unix peuvent les utiliser. Ils valent vraiment la peine d'être appris. Il y a un super tutoriel sur regular-expressions.info.


Linux
  1. Comment rediriger la sortie d'un programme vers un fichier Zip ? ?

  2. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  3. Comment écrire un fichier avec C sous Linux ?

  4. Comment puis-je demander un fichier mais ne pas l'enregistrer avec Wget ?

  5. Comment supprimer le caractère \r avec sed

Comment mélanger les lignes dans un fichier sous Linux

Comment inverser les lignes d'un fichier par caractère sous Linux

Comment combiner toutes les lignes qui se terminent par un caractère barre oblique inverse ?

Comment grep avec la sortie couleur

Comment ajouter la sortie à un fichier ?

Comment rediriger la sortie de system() vers un fichier ?