grep สำหรับคำไม่เกินความยาวที่แน่นอน


9

ฉันกำลังมองหาวิธีที่จะ grep สิ่งต่าง ๆ เช่น: i log for E M, i 1 f x i 0, I xi 1, 3 1,.เพียงแค่ขึ้นอยู่กับจำนวนของตัวละคร

ไม่มีสิ่งใดในเอาต์พุตสมมุติฐานที่มีความยาวเกินสามอักขระ หนึ่งซับสมมุติฐานนี้จะมีลักษณะเหมือน, grep -v [:alnum:] > {3}. (ยกเว้นว่าฉันไม่รู้วิธีเขียนในไวยากรณ์ grep)


คุณต้องการจับคู่อักขระที่ต้องการ,และ.เป็นส่วนหนึ่งของคำหรือไม่?

คำตอบ:


19
grep -o -w '\w\{1,3\}' data

ตัวเลือกคือ:

  • -o พิมพ์คำที่ตรงกันเท่านั้น
  • -w จับคู่ทั้งคำเท่านั้น

มันตรงกับคำเท่านั้น (ใน grep \ w = [[: alnum:]] = [A-Za-z0-9]) ความยาวจาก 1 ถึง 3 (ระบุโดย {1,3})


ขอบคุณ ไวยากรณ์พื้นฐานของคำตอบของคุณคือสิ่งที่ฉันต้องการและท้ายที่สุดฉันเพียงแค่ใช้ข้อมูล grep '\ w \ {3}' และคำสั่งเดียวกันกับ grep -v ..
ixtmixilix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.