Spécifiez un “-” dans un modèle sed

J’essaie de trouver un caractère ‘-‘ dans une ligne, mais ce caractère est utilisé pour spécifier une plage. Puis-je obtenir un exemple de modèle sed contenant le caractère ‘-‘?

En outre, il serait plus rapide d’utiliser un motif contenant tous les caractères, à l’exception d’un espace et d’un onglet.

'-' spécifie une plage uniquement entre crochets.

Par exemple, ceci:

 sed -n '/-/p' 

imprime toutes les lignes contenant un caractère '-' . Si vous voulez qu’un '-' se représente entre crochets, mettez-le immédiatement après le [ ou avant le ] . Ce:

 sed -n '/[-x]/p' 

imprime toutes les lignes contenant un '-' ou un 'x' .

Ce modèle: [^ ]

correspond à tous les caractères autres qu’un espace et un onglet (notez que vous avez besoin d’un caractère de tabulation littérale, pas de ” “).

Si vous souhaitez rechercher un tiret, spécifiez-le en dehors d’une classe de caractères:

 /-/ 

Si vous voulez l’inclure dans une classe de caractères, faites-en le premier ou le dernier caractère:

 /[-az]/ /[az-]/ 

Si vous voulez trouver quelque chose sauf un blanc ou une tabulation (ou une nouvelle ligne), alors:

 /[^ \t]/ 

où, je m’empresse d’append, le ” \t ” est un caractère tabulaire littéral et non une barre oblique inverse-t.

trouver “-” dans le fichier

  awk '/-/' file