linux command

sdiff

Linux Command – sdiff ใช้ในการวิเคราะห์เปรียบเทียบข้อมูล file ทีละบรรทัด

 

คำสั่ง

ตัวอย่าง file1 และ file2 ที่ทำการจัดเรียง (sort) ข้อมูลแล้ว

$ cat file1.sort
aaaaaaaaaaa
bbbbbbbbbbb
ccccccccccc
ddddddddddd
eeeeeeeeeee
fffffffffff
ggggggggggg

$ cat file2.sort
22222222222
33333333333
aaaaaaaaaaa
ccccccccccc
ddddddddddd
xxxxxxxxxxx
zzzzzzzzzzz

 

1. เปรียบเทียบข้อมูล 2 file

sdiff <file1> <file2>

$ sdiff file1.sort file2.sort
               > 22222222222
               > 33333333333
aaaaaaaaaaa      aaaaaaaaaaa
bbbbbbbbbbb    <
ccccccccccc      ccccccccccc
ddddddddddd      ddddddddddd
eeeeeeeeeee    | xxxxxxxxxxx
fffffffffff    | zzzzzzzzzzz
ggggggggggg    <

 

2. ทำการรวม file ด้วยเงื่อนไข

หลังจากเปรียบเทียบระบบจะให้เลือกว่าใช้ข้อมูล file ไหนเป็นตัวอ้างอิง

  • file แรกหรือซ้ายจะเป็น 1
  • file สองหรือขวาจะเป้น 2
$ sdiff -o mergefile file1.sort file2.sort
> 22222222222
> 33333333333
%
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.
%2
aaaaaaaaaaa aaaaaaaaaaa
bbbbbbbbbbb <
%1
ccccccccccc ccccccccccc
ddddddddddd ddddddddddd
eeeeeeeeeee | xxxxxxxxxxx
fffffffffff | zzzzzzzzzzz
ggggggggggg <
%2
$ cat mergefile
22222222222
33333333333
aaaaaaaaaaa
bbbbbbbbbbb
ccccccccccc
ddddddddddd
xxxxxxxxxxx
zzzzzzzzzzz

 

โครงสร้างคำสั่ง

 sdiff [OPTION]... FILE1 FILE2

 

รายละเอียด

เป็นคำสั่งที่ใช้ในการวิเคราะห์เปรียบเทียบข้อมูล file ทีละบรรทัด และสามารถรวมกับด้วย option -o สำหรับข้อมูลที่เป็นชุด (list) ควรทำการจัดเรียง หรือ sort ข้อมูลทั้ง 2 file ก่อนทำการวิเคราะห์เปรียบเทียบ

 

Option

 Mandatory arguments to long options are mandatory for short options too.

 -o, --output=FILE
 operate interactively, sending output to FILE

 -i, --ignore-case
 consider upper- and lower-case to be the same

 -E, --ignore-tab-expansion
 ignore changes due to tab expansion

 -Z, --ignore-trailing-space
 ignore white space at line end

 -b, --ignore-space-change
 ignore changes in the amount of white space

 -W, --ignore-all-space
 ignore all white space

 -B, --ignore-blank-lines
 ignore changes whose lines are all blank

 -I, --ignore-matching-lines=RE
 ignore changes whose lines all match RE

 --strip-trailing-cr
 strip trailing carriage return on input

 -a, --text
 treat all files as text

 -w, --width=NUM
 output at most NUM (default 130) print columns

 -l, --left-column
 output only the left column of common lines

 -s, --suppress-common-lines
 do not output common lines

 -t, --expand-tabs
 expand tabs to spaces in output

 --tabsize=NUM
 tab stops at every NUM (default 8) print columns

 -d, --minimal
 try hard to find a smaller set of changes

 -H, --speed-large-files
 assume large files, many scattered small changes

 --diff-program=PROGRAM
 use PROGRAM to compare files

 --help display this help and exit

 -v, --version
 output version information and exit

 

กลุ่มคำสั่ง

cmp(1), diff(1), diff3(1)

 

Reference:

คำสั่ง Unix – Linux Command

Linux, Unix

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com

Leave a Reply