Maison > Questions et réponses > le corps du texte
Hors sujet : quand j'étais sous Linux, j'ai vu last | grep [a-zA-Z] | grep -v 'wtmp' | Je me demandais si je pouvais le faire avec un seul grep, alors je J'ai réfléchi à la possibilité d'utiliser des expressions régulières. Une certaine ligne correspond à un certain mot (comme wtmp), mais le résultat n'est pas compris.
淡淡烟草味2017-05-24 11:34:15
js/^(?!.*wtmp)/
> p1=/^(?!.*wtmp)/
/^(?!.*wtmp)/
> p1.test('abc123')
true
> p1.test('abc1wtmp23')
false
>
为情所困2017-05-24 11:34:15
La correspondance ne contient pas, cette difficulté devrait être relativement grande pour les expressions régulières, car cette condition peut être vraie à cette position, mais elle peut ne pas être vraie à la position suivante. Cependant, les expressions régulières renverront toute chaîne qui satisfait au modèle
Pour Pour l'exemple de votre question, je suggère d'utiliser awk
pour l'implémenter :awk
实现:
last | awk '!=wtpm&&/[A-Za-z]/{num++}END{print num}'
awk
rrreee
awk
peut fournir un traitement logique plus flexible et est plus lisible Par rapport à une seule expression régulière, je pense que awk est un meilleur choix dans le scénario de la question, mais si vous utilisez un autre langage pour l'implémentation, vous devrez peut-être vous référer aux méthodes d'autres langues🎜