เนื่องจากคุณมีsed
แท็กนี่คือsed
คำตอบ:
echo "$word" | sed -e "{ s/^\(.\).*/\1/ ; q }"
เล่นโดยเล่นสำหรับผู้ที่ชอบสิ่งเหล่านั้น (ฉันทำ!):
{
s
: เริ่มรูทีนการทดแทน
/
: เริ่มระบุสิ่งที่จะทดแทน
^\(.\)
: จับอักขระตัวแรกในกลุ่ม 1
.*
: ตรวจสอบให้แน่ใจว่าส่วนที่เหลือของบรรทัดอยู่ในการเปลี่ยนตัว
/
: เริ่มระบุการเปลี่ยน
\1
: แทรกกลุ่ม 1
/
: ส่วนที่เหลือทิ้ง;
q
: ออกsed
เพื่อไม่ให้บล็อกนี้ซ้ำสำหรับบรรทัดอื่น ๆ หากมี
}
สนุกดี! :)
นอกจากนี้คุณยังสามารถใช้grep
และอื่น ๆ แต่ถ้าคุณอยู่ในเวทมนตร์ยังคงเป็นทางออกที่ดีกว่า IMO (ฉันใช้เวลาประมาณหนึ่งชั่วโมงในการพยายามใช้การขยายตัวแปร POSIX เพื่อทำสิ่งนั้น แต่ทำไม่ได้ )bash
${x:0:1}
:(
-c
ตัวเลือกใน POSIX head: < unix.com/man-page/posix/1/head >