Crea file - pipe per l'output


-1

All'inizio devo dire che il mio inglese non sta molto bene. Devo svolgere il mio compito dagli studi e ho un problema. Devo fare il file con la versione nel catalogo corretto. Le informazioni sono nel file di testo, ad esempio:

com.amazonaws.services.cloudwatch;version=1.1.5

Questa è una direzione per catalogare, in cui devo creare il file:

1.1.5

Ora scrivo:

egrep 'version=' bamboo.log | egrep --color -o '[^[:space:],\"](.+\.)+.+;version=[\"]*([[:digit:]]+\.)+[[:digit:]][\"]*' > tmp
cut -d ';' -f 1 tmp| tr '.' '/'| sed 's/$/\/version/'

Vorrei fare qualcosa del genere:

cut -d ';' -f 1 tmp| tr '.' '/'| sed 's/$/\/version/'| echo $(cut -d '=' -f 2 < tmp) ) > -

Ovviamente non funziona.

Ma non so come posso incollare pipe (cosa proviene da pipe) come nome del file e versione semplice di 'echo'.

Potresti aiutarmi con questo problema?


Si prega di chiarire, possibilmente semplicemente riformulando, qual è l'output desiderato.
Giovanni 1024,

Risposte:


0

Hai già tutti gli strumenti di cui hai bisogno, tranne che sedfarà tutto ciò che egrepfa senza una chiamata separata, quindi stai rendendo il problema inutilmente complesso.

Non so cos'altro c'è nel file, ma quanto segue isolerà la stringa di versione nell'esempio che hai fornito:

sed<bamboo.log -n 's/^.*;version=//pg'

Se si desidera utilizzare la stringa restituita come nome file, utilizzare semplicemente il $()costrutto, come in:

FileName=$(sed<bamboo.log -n 's/^.*;version=//pg')

Ho trovato un buon riferimento / tutorial per sed qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.