$ echo "Watermelons and cucumbers" | cut -d ' ' -f 3
cucumbers
 Il -d ' ' dice cut dividere sugli spazi. -f 3 seleziona la terza colonna.
 Puoi anche usare awk , che esegue già la suddivisione in base allo spazio e rende disponibili le colonne come $1 , $2 , … 
$ echo "Watermelons and cucumbers" | awk '{ print $3 }'
cucumbers
Probabilmente userei una delle opzioni già fornite da @slhck, ma qui ci sono altri modi per farlo:
-  Utilizzando gli array, come faresti in qualsiasi altro linguaggio: $ foo=( $(SayStuff) ) $ echo ${foo[2]} cucumbersIl var=()dichiara un array,$(command)salva l'output del comando. Quindi,foo=( $(SayStuff) )memorizza l'output diSayStuffnell'arrayfooe poiechoè il terzo elemento con${foo[2]}.
-  sed$ SayStuff | sed 's/.* \(.*\)/\1/' cucumbersIl sedcomando sostituirà (s///) tutto con l'ultima parola. L'espressione regolare corrisponde a qualsiasi cosa fino a uno spazio (.*) che corrisponderà a tutto fino all'ultimo spazio e quindi catturerà l'ultima parola(\(.*\). Poiché la parola è stata catturata, possiamo riferirci ad essa come\1.Una versione più semplice: $ SayStuff | sed 's/.* //' cucumbers
-  bash $ foo=$(SayStuff); echo ${foo##* } cucumbersQuesto usa le capacità di manipolazione delle stringhe di bash, vedi qui per maggiori dettagli. 
-  Ancora bash $ SayStuff | while read a b c; do echo $c; done cucumbers
-  Perl, dove ovviamente ci sono molti modi per farlo: $ SayStuff | perl -lane 'print $F[$#F]' cucumberIl -arendeperlcomportarsi comeawk, dividendo le righe negli spazi bianchi e salvandole nell'array@F. Quindi stampiamo l'ultimo elemento di@F($#Fè il numero di elementi in@F). Il-ldice a perl di aggiungere una nuova riga a ogniprintistruzione, il-nche dovrebbe elaborare STDIN riga per riga e-eche dovrebbe eseguire lo script fornito nella riga di comando.$ SayStuff | perl -pe 's/.* //' cucumberLe opzioni sono state spiegate sopra, stiamo solo cancellando tutto fino all'ultimo spazio e stampando ( -p).$ perl -le 'print $ARGV[$#ARGV]' $(SayStuff) cucumbersQui stiamo superando Watermelons and cucumberscome argomenti, che perl salverà nel@ARGarray e quindi, stampiamo l'ultimo elemento di@ARG.
-  inganno. Questo usa sedper convertire gli spazi in newline e poitailper stampare solo l'ultima riga.$ SayStuff | sed 's/ /\n/g' | tail -n 1 cucumbers
-  grep ed espressioni regolari, utilizzando -oche stampa solo la stringa corrispondente.$ SayStuff | grep -Po '\w+$' cucumbers
-  barare $ SayStuff | grep -o cucumbers cucumbers
Ecco qualche altra spiegazione:
Usage: cut OPTION... [FILE]...
Print selected parts of lines from each FILE to standard output.
   -d, --delimiter=DELIM
          use DELIM instead of TAB for field delimiter
   -f, --fields=LIST
          select only these fields;  also print any line that contains  no
          delimiter character, unless the -s option is specified
Quindi se hai bisogno del 3° campo ed è delimitato da spazi '' ' allora lo è
$ echo "Watermelons and cucumbers" | cut -d ' ' -f 3  
cucumbers
 Se vuoi il ULTIMO probabilmente dovresti usare awk . 
 In questo caso diventa:
$ echo "Angurie e cetrioli" | awk '{ stampa $NF }'
cetrioli
 In awk NF è il numero di campi nella riga, quindi $NF indica l'ultimo campo della riga.