GNU/Linux >> Linux Esercitazione >  >> Linux

Come specificare più spazi per il delimitatore usando cut?

In realtà awk è esattamente lo strumento che dovresti esaminare:

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

oppure puoi abbandonare il grep del tutto dal awk conosce le espressioni regolari:

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

Ma se, per qualche bizzarra ragione, davvero non puoi usa awk , ci sono altre cose più semplici che puoi fare, come comprimere prima tutti gli spazi bianchi in un unico spazio:

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

Quel grep trucco, tra l'altro, è un modo accurato per ottenere solo il jboss processi e non il grep jboss uno (idem per il awk variante pure).

L'grep process avrà un letterale grep [j]boss nel suo comando process quindi non verrà catturato dal grep stesso, che sta cercando la classe di caratteri [j] seguito da boss .

Questo è un modo ingegnoso per evitare il | grep xyz | grep -v grep paradigma che alcune persone usano.


awk version è probabilmente il modo migliore per procedere, ma puoi anche usare cut se prima stringi le ripetizioni con tr :

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

Mi piace usare il comando tr -s per questo

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

Questo comprime tutti gli spazi bianchi fino a 1 spazio. In questo modo dire a cut di utilizzare uno spazio come delimitatore viene onorato come previsto.


Linux
  1. Linux:come limitare l'accesso a Internet per un particolare utente sulla LAN utilizzando Iptables in Linux?

  2. Come evidenziare una parola nell'output di "cat"??

  3. Linux:come sapere per cosa Grep in Dmesg?

  4. Come rimuovere il prefisso di una parola usando grep?

  5. Come eseguire il grep per la parola esatta se la stringa contiene un punto

Come usare il comando Linux grep

Suggerimenti per l'utilizzo del comando top in Linux

Come Grep per più stringhe, pattern o parole

Come eseguire Ubuntu utilizzando il sottosistema Windows per Linux

Come faccio a sfuggire agli spazi nei percorsi per Scp in Linux?

Come eliminare il testo selezionato nell'editor vi