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