ค้นหาเว็บไซต์

ตัวอย่างคำสั่ง Linux sdiff สำหรับมือใหม่ Linux


ในบทความก่อนหน้านี้ เราได้อธิบายเกี่ยวกับเครื่องมือเปรียบเทียบไฟล์และความแตกต่าง (Diff) ที่ดีที่สุด 9 รายการสำหรับระบบ Linux เราแสดงรายการส่วนผสมของเครื่องมือบรรทัดคำสั่งและ GUI สำหรับการเปรียบเทียบและค้นหาความแตกต่างระหว่างไฟล์ โดยแต่ละไฟล์มีคุณสมบัติที่โดดเด่นบางประการ ยูทิลิตี้ diff ที่มีประโยชน์อีกตัวหนึ่งสำหรับ Linux เรียกว่า sdiff

อ่านเพิ่มเติม: วิธีค้นหาความแตกต่างระหว่างสองไดเรกทอรีโดยใช้เครื่องมือ Diff และ Meld

sdiff เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งง่ายๆ สำหรับแสดงความแตกต่างระหว่างสองไฟล์และผสานแบบโต้ตอบ ใช้งานง่ายและมาพร้อมตัวเลือกการใช้งานที่ตรงไปตรงมาดังที่อธิบายไว้ด้านล่างนี้

ไวยากรณ์สำหรับการใช้ sdiff มีดังนี้

sdiff option... file1 file2

แสดงความแตกต่างระหว่างสองไฟล์ใน Linux

1. วิธีที่ง่ายที่สุดในการเรียกใช้ sdiff คือการระบุชื่อไฟล์ทั้งสองที่คุณต้องการเปรียบเทียบ มันจะแสดงความแตกต่างที่ผสานกันแบบเคียงข้างกันดังที่แสดงในภาพหน้าจอต่อไปนี้


cal >cal.txt
df -h >du.txt
sdiff du.txt cal.txt

ถือว่าไฟล์ทั้งหมดเป็นไฟล์ข้อความ

2. หากต้องการถือว่าไฟล์ทั้งหมดเป็นข้อความและเปรียบเทียบทีละบรรทัด ไม่ว่าจะเป็นไฟล์ข้อความหรือไม่ก็ตาม ให้ใช้แฟล็ก -a

sdiff -a du.txt cal.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <

ละเว้นแท็บและพื้นที่สีขาว

3. หากคุณมีไฟล์ที่มีช่องว่างมากเกินไป คุณสามารถสั่งให้ sdiff ละเว้นช่องว่างทั้งหมดในขณะที่เปรียบเทียบโดยใช้สวิตช์ -W

sdiff -W du.txt cal.txt

4. คุณยังสามารถสั่ง sdiff ให้ละเว้นช่องว่างที่ส่วนท้ายบรรทัดได้โดยใช้ตัวเลือก -z

sdiff -z du.txt cal.txt

5. นอกจากนี้ คุณยังสามารถสั่งให้ sdiff ละเว้นการเปลี่ยนแปลงเนื่องจากการขยายแท็บด้วยแฟล็ก -E

sdiff -E du.txt cal.txt

ละเว้นกรณีและการเปรียบเทียบความแตกต่าง

6. หากต้องการละเว้นตัวพิมพ์เล็ก (โดยที่ sdiff ถือว่าตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเหมือนกัน) ให้ใช้ตัวเลือก -i ตามที่แสดง

sdiff -i du.txt cal.txt

ละเว้นบรรทัดว่างขณะเปรียบเทียบความแตกต่าง

7. ตัวเลือก -B ช่วยละเว้นบรรทัดว่างในไฟล์

sdiff -B du.txt cal.txt

กำหนดจำนวนคอลัมน์ที่จะส่งออก

8. sdiff ช่วยให้คุณสามารถกำหนดจำนวนคอลัมน์ที่จะพิมพ์ (ค่าเริ่มต้นคือ 130) โดยใช้ -w สลับดังนี้

sdiff -w 150 du.txt cal.txt

ขยายแท็บเป็นช่องว่าง

9. หากต้องการขยายแท็บเป็นช่องว่างในเอาต์พุต ให้ใช้ตัวเลือก -t

sdiff -t du.txt cal.txt

เรียกใช้ sdiff แบบโต้ตอบ

10. ธง -o ช่วยให้สามารถทำงานแบบโต้ตอบได้มากขึ้นและส่งเอาต์พุตไปยังไฟล์ ในคำสั่งนี้ ผลลัพธ์จะถูกส่งไปยังไฟล์ sdiff.txt กด Enter หลังจากเห็นเครื่องหมาย % เพื่อรับเมนูโต้ตอบ .

sdiff du.txt cal.txt -o sdiff.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <
% 
ed:	Edit then use both versions, each decorated with a header.
eb:	Edit then use both versions.
el or e1:	Edit then use the left version.
er or e2:	Edit then use the right version.
e:	Discard both versions then edit a new one.
l or 1:	Use the left version.
r or 2:	Use the right version.
s:	Silently include common lines.
v:	Verbosely include common lines.
q:	Quit.
%

โปรดทราบว่าคุณต้องมีตัวแก้ไขบางตัว เช่น ed ติดตั้งอยู่บนระบบของคุณก่อนที่จะใช้งานในสถานการณ์นี้

เรียกใช้โปรแกรมอื่นเพื่อเปรียบเทียบไฟล์

11. สวิตช์ --diff-program ช่วยให้คุณสามารถเรียกใช้เครื่องมือบรรทัดคำสั่งอื่นนอกเหนือจาก sdiff เองเพื่อเปรียบเทียบไฟล์ เป็นต้น คุณสามารถเรียกโปรแกรม diff ดังที่แสดง

sdiff --diff-program=diff du.txt cal.txt

สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้า sdiff man

man sdiff

ในบทความนี้ เราได้ดูตัวอย่างเครื่องมือบรรทัดคำสั่ง sdiff สำหรับผู้เริ่มต้น หากคุณมีคำถามใด ๆ ใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อติดต่อเรา