Bash สำหรับแต่ละบรรทัดในไฟล์

Bash Each Line File



For loop in Bash สามารถใช้กับรูปแบบต่างๆ สำหรับการทำงานหลายอย่าง รูปแบบหนึ่งคือ สำหรับแต่ละบรรทัดในไฟล์ ซึ่งมีหน้าที่ในการอ่านบรรทัดทั้งหมดในไฟล์ ในบทความนี้เราจะพูดถึงวิธีการใช้ไฟล์แต่ละบรรทัดใน Bash

หมายเหตุ: วิธีการที่แสดงด้านล่างได้รับการสาธิตบน Ubuntu 20.04 อย่างไรก็ตาม มันจะทำงานได้ดีกับลีนุกซ์รุ่นอื่นๆ.







วิธีการใช้สำหรับแต่ละบรรทัดในไฟล์ใน Bash:

ในวิธีการเหล่านี้ เราจะแสดงตัวอย่างให้คุณเห็นซึ่งคุณสามารถอ่านแต่ละบรรทัดจากไฟล์ จากนั้นคุณสามารถแสดงบนเทอร์มินัล หรือคุณสามารถเก็บบรรทัดเหล่านี้ไว้ในไฟล์อื่น เรามาดูทั้งสองวิธีกัน



วิธีที่ # 1: สำหรับการแสดงบรรทัดการอ่านบนเทอร์มินัล:

สำหรับการแสดงบรรทัดของไฟล์บนเทอร์มินัลโดยใช้สำหรับแต่ละบรรทัดในไฟล์ คุณจะต้องทำตามขั้นตอนต่อไปนี้:



ขั้นตอนที่ # 1: การสร้างไฟล์ข้อความจำลอง:

ก่อนอื่น คุณต้องสร้างไฟล์ข้อความที่มีข้อมูลสุ่มเพื่อการสาธิต แม้ว่าไฟล์ข้อความนี้จะสร้างได้ทุกที่ แต่ขอแนะนำเป็นอย่างยิ่งให้คุณสร้างไฟล์ดังกล่าวในโฟลเดอร์โฮม ในการทำเช่นนั้น ให้คลิกที่ไอคอนตัวจัดการไฟล์ที่ไฮไลต์ในภาพที่แสดงด้านล่าง:





  • การสร้างไฟล์ข้อความจำลอง

    ตอนนี้ให้คลิกขวาที่ใดก็ได้ในโฟลเดอร์โฮมของคุณและเลือกตัวเลือกเอกสารใหม่จากเมนูที่ปรากฏขึ้น จากนั้นเลือกตัวเลือก Empty Document เมื่อสร้างเอกสารเปล่าในโฟลเดอร์ Home แล้ว ให้ระบุชื่อที่คุณต้องการตามด้วยนามสกุล .txt ในตัวอย่างนี้ เราได้ตั้งชื่อว่า ForEachLine.txt

  • การสร้างไฟล์ข้อความจำลอง2
    ดับเบิลคลิกที่ไฟล์ข้อความนี้เพื่อเปิด จากนั้นพิมพ์ข้อความสุ่มตามที่แสดงในภาพต่อไปนี้ หลังจากทำสิ่งนี้แล้ว ให้บันทึกไฟล์นี้แล้วปิด



  • การสร้างไฟล์ข้อความจำลอง3

    ขั้นตอนที่ # 2: การสร้างสคริปต์ทุบตี:

    ตอนนี้สร้างไฟล์ Bash ในลักษณะเดียวกับที่คุณสร้างไฟล์ข้อความในโฟลเดอร์ Home ยกเว้นว่าคราวนี้ คุณต้องระบุชื่อตามด้วยนามสกุล .sh แทนนามสกุล .txt เราได้ตั้งชื่อไฟล์ Bash ของเราเป็น ForEachLine.sh แต่คุณสามารถตั้งชื่อตามที่คุณต้องการได้
    การสร้างสคริปต์ทุบตี

    เปิดไฟล์นี้โดยดับเบิลคลิกที่ไฟล์แล้วพิมพ์สคริปต์ที่แสดงในภาพด้านล่างในไฟล์ Bash ที่สร้างขึ้นใหม่ ในที่นี้ บรรทัดแรกมีไว้เพื่อระบุว่าสคริปต์ต่อไปนี้เป็นสคริปต์ทุบตี เราเพิ่งสร้างตัวแปรชื่อ File และกำหนดชื่อไฟล์ข้อความของเราเป็นค่าของมันคือ ForEachLine.txt จากนั้นเราได้สร้างตัวแปรชื่อ Lines และปรับให้เป็น $(cat $File) ที่นี่ คำสั่ง cat อ่านเนื้อหาของไฟล์ข้อความของเรา และเมื่อนำหน้าด้วยสัญลักษณ์ $ เนื้อหาที่อ่านโดยคำสั่งนี้จะถูกเก็บไว้ในตัวแปร Lines ด้วยวิธีนี้ ทุกบรรทัดของไฟล์ชื่อ ForEachLine.txt จะถูกเก็บไว้ในตัวแปร Lines จากนั้นเราได้ใช้ For loop ซึ่งมี iterator Line ตัววนซ้ำนี้ทำงานบนตัวแปร Lines ที่เราได้สร้างไว้ด้านบน และจะวนซ้ำทุกบรรทัดทีละบรรทัด จากนั้นในบล็อกที่ทำเสร็จแล้ว เราเพียงแค่แสดงบรรทัดเหล่านี้ทั้งหมดบนเทอร์มินัลโดยใช้คำสั่ง echo
    การสร้าง Bash Script2

    ขั้นตอนที่ # 3: การรันสคริปต์ทุบตี:

    ตอนนี้เปิดเทอร์มินัลใน Ubuntu 20.04 แล้วเรียกใช้คำสั่งต่อไปนี้เพื่อรันสคริปต์ Bash ที่สร้างขึ้นด้านบน:
    bash ForEachLine.sh
    การรันสคริปต์ทุบตี

    เมื่อคำสั่งนี้จะทำให้ bash script ทำงาน คุณจะสามารถเห็นบรรทัดทั้งหมดของไฟล์ข้อความบนเทอร์มินัลของคุณดังที่แสดงในภาพต่อไปนี้:
    การรันสคริปต์ทุบตี

    วิธีที่ # 2: สำหรับการบันทึกบรรทัดการอ่านทั้งหมดในไฟล์อื่น:

    ในวิธีนี้ เราได้แก้ไขสคริปต์ Bash ที่สร้างขึ้นในวิธีการด้านบนเล็กน้อย เพื่อบันทึกบรรทัดที่อ่านทั้งหมดในไฟล์ข้อความใหม่ แทนที่จะแสดงบนเทอร์มินัล สำหรับการดำเนินการนี้ ให้ทำตามขั้นตอนด้านล่าง:

    ขั้นตอนที่ # 1: การแก้ไข Bash Script ที่สร้างขึ้นด้านบนและเรียกใช้:

    เปิดสคริปต์ทุบตีที่คุณสร้างขึ้นในวิธีการด้านบนและแก้ไขตามที่แสดงในภาพต่อไปนี้ เราได้เพิ่มสัญลักษณ์ >> ตามด้วยชื่อไฟล์ใหม่หลังคำสั่ง echo ภายในบล็อกที่ทำเสร็จแล้ว การแก้ไขนี้จะบันทึกบรรทัดที่อ่านทั้งหมดลงในไฟล์ข้อความใหม่ แทนที่จะแสดงบนเทอร์มินัล ตอนนี้ให้รันสคริปต์ Bash อีกครั้งผ่านเทอร์มินัลด้วยคำสั่ง bash ตามด้วยชื่อไฟล์ Bash คราวนี้เมื่อรันสคริปต์ Bash มันจะสร้างไฟล์ข้อความใหม่ที่มีชื่อในกรณีนี้คือ NewFile.txt
    การแก้ไข Bash Script ที่สร้างไว้ด้านบนและรัน it1

    ขั้นตอนที่ # 2: การเข้าถึงไฟล์ข้อความที่สร้างขึ้นใหม่:

    เพื่อตรวจสอบว่าบรรทัดที่อ่านทั้งหมดได้รับการบันทึกลงในไฟล์ข้อความใหม่หรือไม่ คุณสามารถดูเนื้อหาของไฟล์นั้นได้โดยเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
    cat NewFile.txt
    การเข้าถึงไฟล์ข้อความที่สร้างขึ้นใหม่
    ผลลัพธ์ที่แสดงในภาพด้านล่างจะทำให้คุณมั่นใจได้ว่าทุกบรรทัดที่อ่านได้ถูกคัดลอกไปยังไฟล์ข้อความใหม่แล้ว
    การเข้าถึงไฟล์ข้อความที่สร้างขึ้นใหม่2

    บทสรุป:

    ด้วยวิธีนี้ คุณสามารถใช้สำหรับแต่ละบรรทัดในไฟล์เพื่ออ่านทุกบรรทัดของไฟล์แล้วจัดการกับบรรทัดเหล่านี้ เราได้พูดถึงสองสถานการณ์พื้นฐานในบทความนี้แล้ว อย่างไรก็ตาม คุณสามารถใช้ลูปนี้สำหรับปัญหาที่ซับซ้อนมากขึ้นได้