Come si usa in uscita da awk in un altro comando?
Domanda
Così ho bisogno di convertire una data in un formato diverso. Con una pipeline bash, sto prendendo la data dall'ultimo login da console, e tirando i bit rilevanti con awk, in questo modo:
last $USER | grep console | head -1 | awk '{print $4, $5}'
Quali uscite: Aug 08
($ 4 = agosto $ 5 = 08, in questo caso).
Ora, voglio prendere 'Aug 08' e metterlo in un comando date
per modificare il formato di una data numerico.
Il che sarebbe simile a questa:
date -j -f %b\ %d Aug\ 08 +%m-%d
Uscite: 08-08
La domanda che ho è: come faccio ad aggiungere che nel mio pipeline e utilizzare le variabili awk $ 4 e $ 5, nel quale 'Aug 08' è in questo comando date?
Soluzione
Hai solo bisogno di sostituzione di comando uso:
date ... $(last $USER | ... | awk '...') ...
Bash valuterà il comando / 'interno del $(...)
e inserire il risultato lì.
Altri suggerimenti
Get awk
alla chiamata date
:
... | awk '{system("date -j -f %b\ %d \"" $4 $5 "\" +%b-%d")}'
o la sostituzione di processo utilizzare per recuperare l'output da awk
:
date -j -f %b\ %d "$(... | awk '{print $4, $5}')" +%b-%d
Sto indovinando che già provato questo?
last $USER | grep console | head -1 | awk | date -j -f %b\ %d $4 $5 +%b-%d
Utilizzando le zecche schiena deve lavorare per ottenere il risultato della vostra conduttura lunga in data.
date -j -f %b\ %d \`last $USER | grep console | head -1 | awk '{print $4, $5}'\` +%b-%d