Kuinka diffioin kahden komennon lähdöt? [kaksoiskappale]

Tähän kysymykseen on jo vastaus täällä:

Kommentit

  • Tietysti, jos jokin komennoista on todella cat yhdellä tiedoston argumentilla ei ole ' mitään ilmeistä syytä olla käyttämättä kyseistä tiedostonimeä yhtenä argumenttina diff.
  • sama kysymys yli 250+ ääntä sisältävällä pinonsiirrolla: stackoverflow.com/questions/3800202/…

vastaus

Käytä prosessikorvausta :

diff <(cat /etc/passwd) <(cut -f2 /etc/passwd) 

<(...) kutsutaan prosessin korvaamiseksi. Se muuntaa komennon lähdön tiedostomaiseksi objektiksi, josta diff voi lukea.

Vaikka prosessin korvaaminen ei ole POSIX, bash, ksh ja zsh tukevat sitä.

Vastaus

Kahden lähdön välinen ero: –

$ diff <(command1) <(command2)

Ero komentolähdön ja tiedoston välillä: –

$ diff <(command) filename

Kahden tiedoston välinen ero: –

$ diff file1 file2

esim $ diff <(mount) <(cat /proc/mounts)

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *