มีหลายสถานการณ์ที่เราต้องแทนที่คำในไฟล์ ไม่ว่าจะเป็นไฟล์การกำหนดค่าบริการ ไฟล์ข้อความ หรือไฟล์ที่มีฐานข้อมูล ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีค้นหาและแทนที่คำในไฟล์บน Linux.
วิธีค้นหาและแทนที่คำในไฟล์ Linux
ตัวเลือกที่ง่ายที่สุดหากคุณเป็นผู้ใช้ระบบปฏิบัติการ Linux, คือการใช้คำสั่ง “sed
". สั่งซื้อสำหรับ ตัวแก้ไขสตรีม.
สมมติว่าเป็นตัวอย่างที่เรามีอยู่ในไฟล์ข้อความ (document.txt) คำ "abc” ที่เราต้องการแทนที่ด้วย “xyz". บรรทัดคำสั่งที่เราสามารถแทนที่คำได้จะเป็นดังนี้:
sed -ie 's/abc/xyz/g' document.txt
เมื่อเราดำเนินการคำสั่งเงื่อนไขคือเราอยู่ในโฟลเดอร์ที่มีไฟล์อยู่ document.txt.
หากดำเนินการคำสั่งจากที่อื่น เส้นทางแบบเต็มของไฟล์จะถูกเขียน เช่น:
sed -ie 's/abc/xyz/g' /full/path/document.txt
ที่ไหน“/full/path/
” คือโฟลเดอร์ที่มีไฟล์อยู่ document.txt.
หลังจากเรียกใช้บรรทัดคำสั่ง ตัวเลือก "-i
" จะสร้าง ไฟล์สำรอง เหมือนกับต้นฉบับ แต่ในส่วนต่อขยายที่เขาจะเพิ่มตัวอักษร "e
". ในกรณีของเราเอกสารสำรองจะเป็น document.txte.
-i[SUFFIX], --in-place[=SUFFIX] : edit files in place (makes backup if extension supplied)
-e script, --expression=script : add the script to the commands to be executed.
คำสั่งนี้ของ “find & replace” ใช้ไม่ได้กับไฟล์เท่านั้น .txt. คุณสามารถแทนที่คำในไฟล์ใดก็ได้ที่มีข้อความ แม้แต่ในไฟล์ฐานข้อมูล MySQL (.SQL)
Stealth Settings - Find & Replace Inside a Text File (Linux Bash Command Line).