it-swarm.it

Non riesci a convogliare in diff?

Volevo essere intelligente e confrontare un file remoto con un file locale senza prima scaricarlo manualmente. Posso ottenere il contenuto del file remoto da

ssh [email protected] "cat path/file.name"

Tuttavia, esegui il piping su diff

ssh [email protected] "cat path/file.name" | diff path/file.name

mi dà questo:

diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.

Ho i tasti SSH impostati, quindi non mi richiede una password. Che cosa è una soluzione alternativa per questo?

81
user394

Prova ad usare - per rappresentare l'input standard.

ssh [email protected] "cat path/file.name" | diff path/file.name -

99
Hemant

Ecco una soluzione alternativa: diff sembra accettare <(expr) come argomentazioni:

diff <(ssh \"cat path/file.name/") <(cat path/file.name)
68
user394

Il piping in diff equivale alla corsa

diff path/file.name

e poi, una volta in esecuzione, digitando l'intero contenuto del file.

Come puoi vedere, non è quello che ti aspettavi.

4
Macha
diff /tmp/localtempfile <(ssh -A -o StrictHostKeyChecking=no [email protected] "cat /tmp/remotetempfile")
1
Vlad