วิธีเปรียบเทียบเนื้อหาไฟล์ของทั้งสองโฟลเดอร์ แต่ไม่รวม #if ... #endif


2

ฉันมีสองโฟลเดอร์พูด Folder_A และ Folder_B ไฟล์ส่วนใหญ่ในสองโฟลเดอร์นี้เหมือนกัน แต่มีบางไฟล์ใน Folder_B ที่ถูกแก้ไขด้วยส่วน #if ... #endif มีคำสั่ง linux หรือแบตช์สามารถค้นหาไฟล์ดังกล่าวใน Folder_B ได้หรือไม่?


ไฟล์ที่ไม่ต้องการมีขนาดเท่ากันในทั้งสองโฟลเดอร์หรือไม่? คุณสามารถสร้างรายชื่อไดเรกทอรีของทั้งสองไดเรกทอรีและเก็บเฉพาะไฟล์ที่มีขนาดแตกต่างกัน
LDC3

คำตอบ:


1
$ cat file1.c
foo bar
#ifdef foo
bar
#endif
qux
#ifdef foo2
bar2
#endif
qzzx

.

$ cat file2.c
foo bar
#ifdef foo_
bar_
#endif
qux
#ifdef foo3
bar3
#endif
quux

.

$ diff \
> <(awk '/^[[:space:]]*#if/,/^[[:space:]]*#endif/{next}1' file1.c) \
> <(awk '/^[[:space:]]*#if/,/^[[:space:]]*#endif/{next}1' file2.c)
3c3
< qzzx
---
> quux
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.