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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top