แผ่นโกง `sed' ที่ใช้กันทั่วไป:
อักขระที่ใช้บ่อยที่สุดที่ใช้ในคำสั่ง `sed' ได้อธิบายไว้ในตารางต่อไปนี้
อักขระ | วัตถุประสงค์ |
ถึง | ใช้สำหรับต่อท้ายเนื้อหา |
NS | ใช้สำหรับแยกเนื้อหา |
ค | ใช้สำหรับเปลี่ยนเนื้อหา |
NS | ใช้สำหรับลบบรรทัดของไฟล์ |
NS | ใช้สำหรับลบบรรทัดแรกของไฟล์ |
NS | ใช้ในการคัดลอกจากข้อความถือ |
NS | ใช้สำหรับต่อท้ายข้อความค้าง |
ชม | ใช้สำหรับคัดลอกในข้อความถือ |
ชม | ใช้สำหรับต่อท้ายข้อความค้าง |
ผม | ใช้สำหรับสอดใส่ |
ผม | ใช้สำหรับพิมพ์บรรทัดทดแทน |
NS | ใช้เพื่อไปยังบรรทัดถัดไป |
NS | ใช้สำหรับต่อท้ายบรรทัดอินพุตถัดไป |
NS | มันถูกใช้ในการพิมพ์ |
NS | ใช้สำหรับพิมพ์บรรทัดแรก |
อะไร | ใช้สำหรับเลิกใช้ |
NS | ใช้สำหรับเลิกใช้ทันที |
NS | ใช้สำหรับอ่านไฟล์. |
NS | ใช้สำหรับอ่านบรรทัดจากไฟล์ |
NS | มันถูกใช้เพื่อทดแทน |
NS | ใช้สำหรับทดสอบการทดแทน |
NS | ใช้เพื่อทดสอบว่าไม่มีการทดแทน |
ใน | ใช้สำหรับเขียนไฟล์. |
ใน | ใช้สำหรับเขียนบรรทัดลงในไฟล์ |
NS | ใช้สำหรับสลับรูปแบบและกดค้างไว้ |
และ | มันถูกใช้ในการแปล |
กับ | ใช้สำหรับล้างเส้น |
'=' | ใช้สำหรับพิมพ์หมายเลขบรรทัด |
แทนที่หลายบรรทัดโดยใช้คำสั่ง `sed` จากเทอร์มินัล:
วิธีการใช้คำสั่ง `sed` เพื่อแทนที่หลายบรรทัดจากไฟล์จากเทอร์มินัลจะแสดงในส่วนนี้ของบทช่วยสอนนี้ สร้างไฟล์ชื่อ sed.txt ด้วยเนื้อหาต่อไปนี้ทดสอบคำสั่งของส่วนนี้
sed.txt
sed แบบเต็มคือตัวแก้ไขสตรีม
เป็นยูทิลิตี้ Unix ที่ใช้ในการอ่านและแปลงข้อความในรูปแบบอื่น
ได้รับการพัฒนาโดย Lee E. McMahon
ใช้สำหรับการประมวลผลข้อความ
รองรับนิพจน์ทั่วไป
ตัวอย่างที่ 1: แทนที่สองบรรทัดติดต่อกัน
คำสั่ง `sed` ต่อไปนี้จะแทนที่สองบรรทัดที่ต่อเนื่องกันด้วยอีกบรรทัดหนึ่ง ในที่นี้ อ็อพชัน -z ใช้เพื่อแทนที่บรรทัดที่ต่อเนื่องกันด้วยข้อมูล null ก่อนเพิ่มข้อความแทนที่ ตามคำสั่ง 3rdและ 4NSบรรทัดของไฟล์จะถูกแทนที่ด้วยข้อความ 'เป็นเครื่องมือที่มีประโยชน์มาก' .
$แมวsed.txt$sed -กับ 's/It ถูกพัฒนาโดย Lee E. McMahon ใช้สำหรับ text
กำลังประมวลผล/มันเป็นเครื่องมือที่มีประโยชน์มาก/'sed.txt
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง
ตัวอย่างที่ 2: แทนที่หลายบรรทัดตามการจับคู่และแฟล็กทั่วโลก
คำสั่ง `sed` ต่อไปนี้จะแทนที่บรรทัดทั้งหมดที่ขึ้นต้นด้วยคำว่า 'มัน' โดยคำว่า ' บรรทัดนี้ถูกแทนที่ '.
$แมวsed.txt$sed 's/^It.*/บรรทัดนี้ถูกแทนที่/g'sed.txt
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง สามบรรทัดมีคำว่า ' มัน 'ในไฟล์. ดังนั้น บรรทัดเหล่านี้จึงถูกแทนที่ด้วยข้อความแทนที่
ตัวอย่างที่ 3: แทนที่หลายบรรทัดตามคำสั่งที่ตรงกันและบรรทัดถัดไป
คำสั่ง `sed` ต่อไปนี้จะแทนที่คำว่า ' เป็น 'โดยคำว่า' เคยเป็น ' ด้วยคำสั่งบรรทัดถัดไป 'n'
$แมวsed.txt$sed ' {n;/is/ {s/is/was/}}'sed.txt
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง ที่นี่, 'เป็น' มีอยู่ใน2NSและ 4NSบรรทัดของไฟล์และบรรทัดเหล่านี้ได้รับการแก้ไขโดย word 'เคยเป็น' .
แทนที่หลายบรรทัดด้วยการสร้างไฟล์สคริปต์ `sed`:
ในตัวอย่างก่อนหน้านี้ คำสั่ง `sed ' ได้รับการดำเนินการจากเทอร์มินัลแล้ว แต่มันเป็นภาษาสคริปต์ และหากสคริปต์มีหลายคำสั่ง จะเป็นการดีกว่าที่จะสร้างไฟล์ sed ด้วยสคริปต์ สร้างไฟล์ข้อความชื่อ นักเรียน.txt ด้วยเนื้อหาต่อไปนี้ซึ่งจะใช้สคริปต์ 'sed'
นักเรียน.txt
ID: 111045ชื่อ: Robert
แผนก: CSE
แบทช์: 35
ID: 111876
ชื่อ: โจเซฟ
แผนก: BBA
แบทช์: 27
ID: 111346
ชื่อ : วิลเลียม
แผนก: CSE
แบทช์: 45
ID: 111654
ชื่อ: Charles
แผนก: EEE
แบทช์: 41
ID: 111346
ชื่อ: จอห์น
แผนก: CSE
แบทช์: 25
ID: 111746
ชื่อ: Thomas
แผนก: CSE
แบทช์: 15
ตัวอย่างที่ 4: แทนที่ไฟล์หลายบรรทัดโดยใช้ `sed` script file
สร้างไฟล์ sed ชื่อ to แทนที่.sed ด้วยเนื้อหาต่อไปนี้เพื่อแทนที่หลายบรรทัดตามรูปแบบการค้นหา ที่นี่คำว่า ' CSE ' จะถูกค้นหาในไฟล์ข้อความ และหากมีการจับคู่อยู่ มันจะค้นหาหมายเลข 35 และ 15 อีกครั้ง หากมีการจับคู่ที่สองในไฟล์ ไฟล์นั้นจะถูกแทนที่ด้วยหมายเลข 45
แทนที่.sed
/CSE/ {พี; น;
/35/ {
NS/35/สี่ห้า/;
p;d;
}
/สิบห้า/ {
NS/สิบห้า/55/;
p;d;
}
}
NS;
รันคำสั่งต่อไปนี้เพื่อตรวจสอบเนื้อหาที่มีอยู่ของไฟล์ 'CSE' ปรากฏสี่ครั้งในไฟล์ข้อความ 35 และ 15 อยู่ในสองแห่ง
$แมวนักเรียน.txt
คำสั่งต่อไปนี้จะแทนที่เนื้อหาของหลายบรรทัดตามสคริปต์ sed
$sed -NS -NSแทนที่.sed นักเรียน.txtผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันคำสั่ง
บทสรุป
วิธีต่างๆ ในการแทนที่หลายบรรทัดหรือเนื้อหาของหลายบรรทัดโดยใช้คำสั่ง `sed' ได้แสดงไว้ในบทช่วยสอนนี้ วิธีเรียกใช้สคริปต์ `sed' จากไฟล์ sed จะแสดงในบทช่วยสอนนี้ด้วย ฉันหวังว่าบทช่วยสอนนี้จะช่วยให้ผู้อ่านแทนที่ไฟล์หลายบรรทัดโดยใช้คำสั่ง `sed'