ฉันมีไฟล์กำหนดค่าสองไฟล์ต้นฉบับจากผู้จัดการแพ็กเกจและไฟล์ที่กำหนดเองที่แก้ไขด้วยตัวเอง ฉันได้เพิ่มความคิดเห็นเพื่ออธิบายพฤติกรรม
ฉันจะรันdiff
ไฟล์กำหนดค่าโดยข้ามความคิดเห็นได้อย่างไร บรรทัดความคิดเห็นถูกกำหนดโดย:
- ช่องว่างนำหน้าตัวเลือก (แท็บและช่องว่าง)
- เครื่องหมายแฮช (
#
) - ตัวละครอื่น ๆ
(ที่ง่ายที่สุด) #.*
การแสดงออกปกติข้ามความต้องการแรกจะเป็น ฉันลองตัวเลือก--ignore-matching-lines=RE
( -I RE
) ของ GNU diff 3.0 แต่ฉันไม่สามารถทำงานกับ RE นั้นได้ ฉันยังพยายาม.*#.*
และ.*\#.*
ไม่มีโชค การวางบรรทัด ( Port 631
) ตามตัวอักษรอย่างแท้จริงRE
ไม่ตรงกับสิ่งใดเลยและไม่ช่วยให้วาง RE ระหว่างเครื่องหมายทับ
ตามที่แนะนำในregex แล้วรสชาติของเครื่องมือ“ diff” นั้นขาดไปหรือไม่? ฉันพยายามgrep -G
:
grep -G '#.*' file
นี้ดูเหมือนว่าจะตรงกับความเห็น diff -I '#.*' file1 file2
แต่มันไม่ทำงานสำหรับ
ดังนั้นควรใช้ตัวเลือกนี้อย่างไร ฉันจะdiff
ข้ามบางบรรทัดได้อย่างไร (ในกรณีของฉันความคิดเห็น) โปรดอย่าแนะนำgrep
ไอเอ็นจีไฟล์และเปรียบเทียบไฟล์ชั่วคราว
diff -I
ไม่ทำงานตามที่ฉันคาดไว้ ฉันอัปเดตคำตอบของฉันด้วยตัวอย่างที่อธิบายพฤติกรรมนี้ให้ฉันทราบ
-I
ตัวเลือกที่ทำให้เกิดการบล็อกที่จะละเลย แต่ถ้าทุกเส้นตรงกับ regexp ดังนั้นคุณสามารถเพิกเฉยต่อการเปลี่ยนแปลงความคิดเห็นอย่างเดียวได้ แต่ไม่ใช่การเปลี่ยนแปลงความคิดเห็นที่อยู่ใกล้กับการเปลี่ยนแปลงที่ไม่ใช่ความคิดเห็น