GNU/Linux >> Tutoriels Linux >  >> Linux

Comment spécifier plus d'espaces pour le délimiteur en utilisant cut?

En fait awk est exactement l'outil que vous devriez rechercher :

ps axu | grep '[j]boss' | awk '{print $5}'

ou vous pouvez abandonner le grep au total depuis awk connaît les expressions régulières :

ps axu | awk '/[j]boss/ {print $5}'

Mais si, pour une raison bizarre, vous ne pouvez vraiment pas utilisez awk , vous pouvez faire d'autres choses plus simples, comme réduire d'abord tous les espaces en un seul espace :

ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5

Ce grep l'astuce, soit dit en passant, est un moyen astucieux d'obtenir uniquement le jboss processus et non le grep jboss un (idem pour le awk variante également).

Le grep processus aura un littéral grep [j]boss dans sa commande process donc ne sera pas attrapé par le grep lui-même, qui recherche la classe de caractères [j] suivi de boss .

C'est un moyen astucieux d'éviter le | grep xyz | grep -v grep paradigme que certaines personnes utilisent.


awk version est probablement la meilleure solution, mais vous pouvez également utiliser cut si vous pressez d'abord les répétitions avec tr :

ps axu | grep jbos[s] | tr -s ' ' | cut -d' ' -f5
#        ^^^^^^^^^^^^   ^^^^^^^^^   ^^^^^^^^^^^^^
#              |            |             |
#              |            |       get 5th field
#              |            |
#              |        squeeze spaces
#              |
#        avoid grep itself to appear in the list

J'aime utiliser la commande tr -s pour cela

 ps aux | tr -s [:blank:] | cut -d' ' -f3

Cela réduit tous les espaces blancs à 1 espace. De cette façon, dire à cut d'utiliser un espace comme délimiteur est honoré comme prévu.


Linux
  1. Linux - Comment restreindre l'accès à Internet pour un utilisateur particulier sur le réseau local à l'aide d'Iptables sous Linux ?

  2. Comment mettre en surbrillance un mot dans la sortie de "cat" ? ?

  3. Comment supprimer un préfixe de mot à l'aide de grep ?

  4. Comment renommer des fichiers avec des espaces à l'aide du shell Linux ?

  5. Comment restreindre l'accès à Internet pour un utilisateur particulier sur le réseau local à l'aide d'iptables sous Linux

Conseils pour utiliser la commande top sous Linux

Comment Grep pour plusieurs chaînes, modèles ou mots

Comment exécuter Ubuntu en utilisant le sous-système Windows pour Linux

Comment puis-je échapper aux espaces dans les chemins pour Scp sous Linux ?

Comment supprimer le texte sélectionné dans l'éditeur vi

Comment savoir quelle interface j'utilise pour me connecter à internet ?