เซ็ด
ย่อมาจากตัวแก้ไขกระแส เป็นโปรแกรมแก้ไขที่ใช้บรรทัดคำสั่งสำหรับ Linux การใช้งาน sed ที่ได้รับความนิยมคือการแก้ไขไฟล์โดยเป็นส่วนหนึ่งของสคริปต์การทำงานอัตโนมัติใน Linux เนื่องจากตัวแก้ไขทั่วไปต้องการอินพุตจากผู้ใช้ที่ใช้งานอยู่ และไม่สามารถแก้ไขไฟล์นอกหน้าจอตัวแก้ไขได้ Sed มักใช้ในการค้นหาและแทนที่จากบรรทัดคำสั่ง
โปรแกรมแก้ไขข้อความประเภทนี้ยังสามารถจัดประเภทเป็นโปรแกรมแก้ไขข้อความที่ไม่ใช่แบบโต้ตอบได้
ให้เราดูตัวเลือกทั่วไปในการแก้ไขไฟล์โดยใช้ Sed เราจะนำไฟล์ต่อไปนี้เป็นตัวอย่าง:
$: cat test.txt สุนัขสีน้ำตาลตัวหนึ่งกระโดดข้ามแมวขี้เกียจ ระบบปฏิบัติการลินุกซ์. ป่าใกล้บ้านฉันมีทั้งแมวและหมาป่า
ค้นหาและแทนที่
หากต้องการค้นหาสตริงในไฟล์และแทนที่ด้วยสตริงอื่น ให้เรียกใช้:
sed -i "s/cat/fox/g" test.txt
ที่นี่ -ผม
flag สั่งให้ sed เขียนการเปลี่ยนแปลงลงในไฟล์ หากไม่มีธงนี้ sed
จะแสดงไฟล์ด้วยสตริงที่เปลี่ยนแปลง
ในคำพูดเรามี s/cat/fox/g
. ดิ ส
ใช้สำหรับค้นหาและแทนที่คำสั่งของ sed
. จากนั้นเราก็มีสตริงที่จะค้นหาซึ่งก็คือ แมว
. จากนั้นสตริงที่จะแทนที่ด้วยนั่นคือ จิ้งจอก
. ในที่สุด เราก็มีตัวเลือก g
ซึ่งสั่งสอน sed
เพื่อแทนที่เหตุการณ์ทั้งหมดในทุกบรรทัดของไฟล์ ปราศจาก g
, sed จะแทนที่เฉพาะการเกิดขึ้นครั้งแรกของ แมว
ในทุกบรรทัด
สามารถใช้ Regex ได้ที่นี่
sed -i "s/f[a-z]*\./cat\./g"
แทรก
ในการแทรกข้อความก่อนบรรทัดที่มีสตริงที่ตรงกัน ให้ใช้:
sed -i "/cat/i เริ่ม:" test.txt
ที่นี่, แมว
เป็นสตริงที่ค้นหาและ เริ่ม:
คือสตริงที่จะป้อนก่อนบรรทัดที่พบสตริงที่ค้นหา
ในทำนองเดียวกัน ในการแทรกข้อความหลังบรรทัด ให้ใช้:
sed -i "/fox/a จบ" test.txt
ลบ
หากต้องการลบบรรทัดที่มีสตริงย่อยให้ใช้:
sed -i "/Linux/d" test.txt
หากต้องการลบบรรทัดที่มีหมายเลขบรรทัดเช่น บรรทัดแรก ใช้:
sed -i '1d' test.txt
ผสมผสานหลายฟังก์ชัน
เพื่อรวมหลายหน้าที่เช่น ค้นหาและแทนที่ ลบ ในคำสั่งเดียว -e
สามารถใช้ธงได้
sed -i -e "s/fox/cat/g" -e '2d' test.txt
? ไชโย!