Linux-kommandoer

diff Kommandoeksempler i Linux

diff Kommandoeksempler i Linux
Diff-kommandoen er en analyse eller en informativ kommando, der udskriver forskelle mellem filer, analyserer dem linje for linje eller kataloger rekursivt, samtidig med at brugeren informeres om, hvilke ændringer der er nødvendige for at gøre filer lig, dette punkt er vigtigt at forstå diff-output. Denne tutorial fokuserer på diff-kommandoen.

Inden du starter, skal du oprette to filer ved hjælp af en hvilken som helst teksteditor (nano bruges i denne vejledning) med det samme indhold:

# nano diffsample1

Indvendig pasta:

 LinuxHint udgiver det bedste indhold til dig 

Trykke CTRL+x og Y for at gemme og afslutte.

Opret en anden fil kaldet diffsample2 med samme indhold:

# nano diffsample2

Bemærk: vær opmærksom på mellemrum og faner, filer skal være 100% ens.

Trykke CTRL+x og Y for at gemme og afslutte.

# diff diffsample1 diffsample2

Som du kan se, er der ingen output, ingen grund til at gøre noget for at gøre filer lige, fordi de allerede er ens.

Lad os nu redigere filen diffsample2 for at foretage nogle ændringer:

# nano diffsample2

Lad os så erstatte ordet "indhold" for "tip":

Trykke CTRL+x og Y for at gemme og afslutte.

Kør nu:

# diff diffsample1 diffsample2

Lad os se output:

Outputtet ovenfor, "3c3" betyder "Linie 3 i første fil af skal erstattes for linje 3 i anden fil". Den venlige del af output er, at det viser os, hvilken tekst der skal ændres (“indhold til dig" til "tip til dig”)

Dette viser os, at referencen til kommandodiffen ikke er den første fil, men den anden, derfor skal den første fil tredje linje (den første 3) ændres (C) som den tredje linje i den anden fil (anden 3).

Kommandoforskellen kan vise 3 tegn:

c: denne karakter instruerer en Lave om skal gøres.
en: denne karakter instruerer noget skal være Tilføjet.
d: denne karakter instruerer noget skal være Slettet.

De første tal før et tegn hører til den første fil, mens tallene efter tegn hører til den anden fil.

Symbolet < belongs to the first file and the symbol > til den anden fil, der bruges som reference.

Lad os vende om rækkefølgen af ​​filer i stedet for at køre

# diff diffsample1 diffsample2

løb:

# diff diffsample2 diffsample1

Du kan se, hvordan ordren blev inverteret, og nu bruges diffsample1-filen som reference, og den beder os om at ændre “tip til dig” for “indhold til dig”, dette var den tidligere output:

Lad os nu redigere filen diffsample1 sådan:

Fjern alle linjer undtagen den første linje i fil diffsample1. Kør derefter:

# diff diffsample2 diffsample1

Da vi brugte filen diffsample1 som reference, skal vi slette (som du kan se, for at gøre filen diffsample2 nøjagtigt ligedlinje to og tre (2,3) som i den første fil og første linje (1) vil være lige.

Lad os nu vende ordren og i stedet for at køre “# diff diffsample2 diffsample1 ” løb:

# diff diffsample1 diffsample2

Som du kan se, mens det forrige eksempel instruerede os i at fjerne, instruerer denne os om at tilføje (-en) linje 2 og 3 efter den første fil første linje (1).

Lad os nu arbejde med sagsfølsomme egenskaber ved dette program.

Rediger filen diffsample2 som:

Og rediger filen diffsample1 som:

Den eneste forskel er store bogstaver i filen diffsample2. Lad os nu sammenligne det ved hjælp af diff igen:

# diff diffsample1 diffsample2

Som du kan se forskelle, der findes forskelle, store bogstaver, undgår vi, at forskel opdager store bogstaver, hvis vi ikke er interesserede i store og små bogstaver ved at tilføje -jeg mulighed:

# diff -i diffsample1 diffsample2

Ingen forskelle blev fundet, sagsdetekteringen blev deaktiveret.

Lad os nu ændre outputformatet ved at tilføje indstillingen -u bruges til at udskrive ens udgange:

Derudover viser output til dato og tid med en - og + symbol, hvad der skal fjernes, og hvad der skal tilføjes for at gøre filer ens.

I starten af ​​denne artikel sagde jeg, at mellemrum og faner skal være ens i begge filer, da de også detekteres af kommandodiffen, hvis vi vil have kommandodiffen til at ignorere mellemrum og faner, skal vi anvende -w mulighed.

Åbn filen diffsample2 og tilføj mellemrum og faner:

Som du ser tilføjede jeg et par faner efter "det bedste" i anden linje og også mellemrum i alle linjer, luk, gem filen og kør:

# diff diffsample1 diffsample2

Som du kan se, blev der fundet forskelle udover store bogstaver. Lad os nu anvende muligheden  -w at instruere diff om at ignorere tomme mellemrum:

Som du ser på trods af tabuleringsforskellen, findes der kun forskel på store bogstaver.
Lad os nu tilføje muligheden -i igen:

#diff -wi diffsample2 diffsample1

Kommandoforskellen har snesevis af tilgængelige muligheder, der kan anvendes til at ignorere, ændre output, diskriminere kolonner, når de er til stede osv. Du kan få yderligere oplysninger om disse muligheder ved hjælp af kommandoen man eller på http: // mand7.org / linux / man-pages / man1 / diff.1.html. Jeg håber, du fandt denne artikel med forskellige kommandoeksempler i Linux nyttige. Fortsæt med at følge LinuxHint for flere tip og opdateringer om Linux og netværk.

Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....