Fish Shell:
การค้นหาและแทนที่ข้อความ
วิธีการ:
ลองเปลี่ยนทุกตัวอย่างของ ‘cat’ เป็น ‘dog’ ในสตริง
echo "One cat, two cats, three cats." | string replace -a 'cat' 'dog'
ผลลัพธ์ตัวอย่าง:
One dog, two dogs, three dogs.
เปลี่ยนข้อความในไฟล์ชื่อ pets.txt
:
string replace -a 'cat' 'dog' < pets.txt > updated_pets.txt
ใช้ตัวแปรสำหรับรูปแบบ:
set old "cat"
set new "dog"
string replace -a $old $new < pets.txt > updated_pets.txt
ลงลึก
การค้นหาและแทนที่ได้มีอยู่ในตัวแก้ไขข้อความตั้งแต่ยุคแรกๆ เช่น sed
สำหรับการแก้ไขสตรีมใน Unix — นั่นเป็นสิ่งที่เจ๋งสุดๆ ในยุคเก่า Fish ได้ทำให้สิ่งนี้ง่ายขึ้นด้วยคำสั่ง string
ไม่ต้องปวดหัวกับ regex อีกต่อไป ถ้าคุณไม่อยาก มีทางเลือกอื่นหรือ? แน่นอน: sed
, awk
, สคริปต์ Perl, แม้แต่ vim
macros แต่คำสั่ง string
ของ Fish มีเสน่ห์และลดโอกาสข้อผิดพลาดสำหรับกรณีทั่วไป
ดูเพิ่มเติม:
- คู่มือการใช้งานทางการของ Fish Shell สำหรับคำสั่ง
string
: fishshell.com/docs/current/cmds/string.html - Sed by Example, ส่วนที่ 1: https://www.gnu.org/software/sed/manual/sed.html
- การเขียนโปรแกรมภาษา AWK — ฟังก์ชันสตริง: https://www.gnu.org/software/gawk/manual/gawk.html#String-Functions