Score:0

คำสั่ง grep โดยใช้สัญลักษณ์แทน [0-9]

ธง in
grep ข้อมูล ".0000000" > เอาต์พุต

ฉันแยกข้อมูลตัวเลขทั้งหมดที่ลงท้ายด้วย .0000000 ในไฟล์ข้อความข้อมูล เมื่อฉันเปลี่ยนรหัสนี้โดยใช้สัญลักษณ์แทนดังนี้:

grep ".[0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ข้อมูล > เอาต์พุต

โค้ดด้านบนนี้ควรจะแยกข้อมูลตัวเลขทั้งหมดที่ลงท้ายด้วยตัวเลขเจ็ดหลักหลังจุด แต่มันใช้งานไม่ได้อย่างที่ควรจะเป็น ฉันจะแก้ไขโค้ดด้านบนเพื่อแยกข้อมูลตัวเลขทั้งหมดที่ลงท้ายด้วยตัวเลขเจ็ดหลักหลังจุดได้อย่างไร

hr flag
`.` ใน grep regex จับคู่อักขระตัวเดียว - หากคุณต้องการจับคู่จุดตามตัวอักษร (จุด) คุณต้องใช้ `\.` หรือ `[.]`
ar flag
@steeldriver ความคิดเห็นของคุณดูเหมือนคำตอบ! :)
hr flag
@ user68186 อาจจะ... ฉันไม่รู้ คำอธิบาย "ใช้งานไม่ได้ตามที่ควรจะเป็น" ค่อนข้างคลุมเครือ ... อย่างน้อยก็อาจต้องมีขอบเขตหรือจุดยึดบางอย่างเช่นกันหาก OP ต้องการ * เป๊ะ * 7 หลัก
deepblue avatar
in flag
@steeldriver ถ้าคุณตอบคำถามนี้ ฉันจะยอมรับ โซลูชันของคุณใช้งานได้
Score:3
ธง hr

คำอธิบายของคุณไม่ชัดเจนว่านิพจน์ของคุณไม่ตรงกับสิ่งที่คุณต้องการหรือตรงกับสิ่งที่คุณไม่ต้องการ

ถ้าเป็นอย่างหลังก็อาจเป็นเพราะ . ในนิพจน์ทั่วไปของ grep จะจับคู่อักขระเดี่ยวใดๆ (ยกเว้นอักขระขึ้นบรรทัดใหม่ - อย่างไรก็ตาม ปกติแล้ว grep จะอิงตามบรรทัดอยู่แล้ว) เพื่อให้ตรงกับจุดตามตัวอักษร (จุด) คุณต้องหลีกหนีจากจุดนั้น \. หรือวางไว้ในชุดอักขระตามที่คุณได้ทำไว้สำหรับช่วงหลักทศนิยม:

grep "[.][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"

คุณยังพูดถึงว่านิพจน์ควรตรงกับข้อมูล "ลงท้ายด้วย" - ยังไม่ชัดเจนว่าคุณหมายถึง a สิ้นสุดบรรทัด หรือ ก ขอบเขตของคำ - เหล่านี้ตามลำดับ $ และ \b (หรือ \>) อดีต.

grep "[.][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$"

grep "[.][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\b"

คุณยังสามารถทำให้นิพจน์สั้นลงโดยใช้ตัวระบุ - เปลี่ยนเป็นโหมดนิพจน์ทั่วไปแบบขยาย (ERE)1:

grep -E "[.][0-9]{7}$"

1 ใน GNU grep คุณสามารถใช้ quantifiers ในโหมด Basic Regular Expression (BRE) ได้โดยการหลีกเครื่องหมายปีกกา grep "[.][0-9]\{7\}$"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา