grep
ความคิดของตัวละครขึ้นอยู่กับสถานที่ หากคุณอยู่ในโลแคลที่ไม่ใช่ Unicode และคุณ grep จากไฟล์ที่มีอักขระ Unicode อยู่การนับจำนวนอักขระจะไม่ตรงกัน หากคุณecho $LANG
คุณจะเห็นสถานที่ที่คุณอยู่
หากคุณตั้งค่าตัวแปรสภาพแวดล้อมLC_CTYPE
และ / หรือLANG
สภาพแวดล้อมเป็นค่าที่ลงท้ายด้วย ".UTF-8" คุณจะได้รับพฤติกรรมที่เหมาะสม:
$ cat data
étuis
letter
éééééé
$ LANG=C grep -E '^.{6}$' data
étuis
letter
$ LANG=en_US.UTF_8 grep -E '^.{6}$' data
letter
éééééé
$
คุณสามารถเปลี่ยนสถานที่ของคุณเพียงคำสั่งเดียวโดยการกำหนดตัวแปรในบรรทัดเดียวกับคำสั่ง
ด้วยการกำหนดค่านี้อักขระหลายไบต์ถือว่าเป็นอักขระเดียว หากคุณต้องการยกเว้นอักขระที่ไม่ใช่ ASCII ทั้งหมดคำตอบอื่น ๆ มีคำตอบสำหรับคุณ
โปรดทราบว่ายังมีความเป็นไปได้ที่สิ่งต่าง ๆ จะแตกหักหรืออย่างน้อยก็ไม่ได้ทำตามที่คุณคาดหวังเมื่อมีตัวละครที่รวมเข้าด้วยกัน คุณgrep
อาจปฏิบัติต่อ LATIN เล็ก LETTER E + รวมตัวอักษร ACUTE ข้างต้นแตกต่างจาก LATIN เล็ก LETTER E ด้วย ACUTE
.
สิ่งที่ต้องการwăsd's
จะตรงกับ