การอ่านไฟล์ข้อความ

Bash:
การอ่านไฟล์ข้อความ

วิธีการ:

นี่คือวิธีที่ง่ายที่สุดในการอ่านไฟล์ทีละบรรทัด:

while IFS= read -r line; do
    echo "ข้อความ: $line"
done < "yourfile.txt"

ต้องการเนื้อหาทั้งไฟล์พร้อมกันหรือ? ลองใช้วิธีนี้:

file_content=$(<yourfile.txt)
echo "$file_content"

หรือคุณต้องใช้บรรทัดที่เฉพาะเจาะจง, เช่น บรรทัดที่ 4?

sed '4q;d' yourfile.txt

ตัวอย่างผลลัพธ์ของการอ่านบรรทัดที่ 4:

นี่คือเนื้อหาของบรรทัดที่สี่

ลงลึก

ย้อนกลับไปในวันนั้น, เราไม่มี IDE ที่ซับซ้อน, เรามีเทอร์มินัลและเอดิเตอร์ข้อความง่ายๆ UNIX ถูกออกแบบมาด้วยปรัชญาของการทำหนึ่งอย่างให้ดีที่สุด cat, less, sed, และ awk เป็นเหล่าทหารผ่านศึกในการจัดการข้อความ

การอ่านไฟล์ใน Bash ใช้ประโยชน์จากเครื่องมือเหล่านี้, รวมถึงการเปลี่ยนทิศทางและลูปของ Bash เอง ตัวอย่างเช่น, การใช้ while กับ read เหมาะสำหรับประสิทธิภาพหน่วยความจำกับไฟล์ขนาดใหญ่ คุณกำลังอ่านทีละบรรทัด, ไม่ได้ดั๊มพ์ทุกอย่างเข้าหน่วยความจำ

sed เป็นตัวแก้ไขสตรีม การเลือกบรรทัดที่เฉพาะเจาะจงด้วย sed '4q;d' yourfile.txt บอกให้ sed หยุดหลังจากบรรทัดที่ 4 (4q) จากนั้นจึงพิมพ์ (;d) บรรทัดนั้น

มีทางเลือกอื่นๆ อยู่ awk เหมาะสมมากสำหรับการประมวลผลข้อความ สคริปต์ Perl และ Python สามารถเรียกใช้ภายใน Bash เมื่อการประมวลผลข้อความซับซ้อนขึ้น แต่ละเครื่องมือและภาษาเหล่านี้มีกรณีการใช้งานและการพิจารณาประสิทธิภาพเฉพาะตัว

ดูเพิ่มเติม

  1. คู่มือ Bash Scripting: https://www.gnu.org/software/bash/manual/
  2. sed และ awk 101 Hacks: https://www.thegeekstuff.com/2009/12/unix-sed-tutorial-6-examples-to-edit-file-in-place/
  3. การประมวลผลข้อความบน Command Line ของ Linux ด้วย grep, awk, sed, sort, และเพื่อนๆ: https://github.com/learnbyexample/Command-line-text-processing