การค้นหาข้อความและไฟล์ ด้วย Script

·

ตัวอย่างเป็นไฟล์ .ts นะครับ เราไปปรับใช้กันนะครับ คือไฟล์ Script ที่ใช้เพื่อค้นหาข้อความในไฟล์ที่มีนามสกุล .ts และชื่อไฟล์ที่มี component.ts ในโฟลเดอร์ src แล้วบันทึกผลลัพธ์ลงในไฟล์ resource.txt

การอธิบายโค้ด

#!/bin/bash

> resource.txt
  • #!/bin/bash: บรรทัดนี้บอกให้ระบบรู้ว่าใช้ Bash interpreter ในการรัน Script นี้
  • > resource.txt: ล้างไฟล์ resource.txt หรือสร้างไฟล์ใหม่ถ้ายังไม่มี (เพื่อให้แน่ใจว่าไฟล์นี้จะมีเนื้อหาที่สดใหม่ทุกครั้งที่รัน Script )

search_pattern="boychawin.com"

  • search_pattern="boychawin.com": กำหนดตัวแปร search_pattern ที่เก็บข้อความที่เราต้องการค้นหา (ในที่นี้คือ boychawin.com)

find src -name "*component.ts" | while read -r file; do
  echo "$file"
  grep -E "$search_pattern" "$file" | grep -v '//'
done >> resource.txt

  • find src -name "*component.ts": ค้นหาไฟล์ทั้งหมดในโฟลเดอร์ src ที่มีชื่อที่ลงท้ายด้วย component.ts
  • | while read -r file; do: ส่งผลลัพธ์ของคำสั่ง find ไปยังลูป while ซึ่งจะอ่านชื่อไฟล์ทีละบรรทัด
  • echo "$file": แสดงชื่อไฟล์ปัจจุบันที่ถูกค้นพบ
  • grep -E "$search_pattern" "$file": ใช้ grep ในการค้นหาข้อความในไฟล์ที่ตรงกับ pattern ที่กำหนด
  • | grep -v '//': กรองผลลัพธ์เพื่อลบบรรทัดที่มีคอมเมนต์ (//)
  • done >> resource.txt: บันทึกผลลัพธ์ทั้งหมดที่ได้จากลูปลงในไฟล์ resource.txt (ใช้ >> เพื่อเพิ่มเนื้อหาไปที่ไฟล์เดิมแทนการลบข้อมูลเดิม)

วิธีการใช้งาน

  • บันทึกโค้ดเป็นไฟล์ เปิดโปรแกรมแก้ไขข้อความ (เช่น vs code) และวางโค้ดลงในไฟล์ใหม่ เช่น script.sh. ทำให้ไฟล์เป็น Executable: ใช้คำสั่งนี้เพื่อทำให้ Script สามารถรันได้:
chmod +x script.sh
  • รัน Script
./script.sh
  • ตรวจสอบผลลัพธ์

ผลลัพธ์ของการค้นหาจะถูกบันทึกในไฟล์ resource.txt ซึ่งจะอยู่ในไดเรกทอรีเดียวกับที่คุณรัน Script

สรุป

Script นี้จะค้นหาไฟล์ที่มีชื่อ *component.ts ภายในโฟลเดอร์ src แล้วค้นหาข้อความที่ตรงกับ boychawin.com ในแต่ละไฟล์ที่พบ และกรองบรรทัดที่มีคอมเมนต์ออก ก่อนจะบันทึกผลลัพธ์ทั้งหมดลงในไฟล์ resource.txt.

🚀 เรารับทำเว็บไซต์คุณภาพสูง

พร้อมบริการหลังการขายและรับประกันผลงาน

จ้างเราผ่าน Fastwork