GotoKnow
  • เข้าระบบ
  • สมัครสมาชิก
  • แผงจัดการ
  • ออกจากระบบ
GotoKnow

การหาข้อความในไฟล์ต่าง ๆ บนระบบลินุกซ์

Moodle find grep "Unknown parameter type: 0"

พอดีเจอปัญหาที่แสดงข้อความผิดพลาด "Unknown parameter type: 0" ในระบบ Moodle ขณะที่ต้องการเพิ่มแหล่งข้อมูล  อันดับแรกจึงเริ่มแก้ปัญหาโดยการหาไฟล์ที่มีข้อความผิดพลาดนี้ 

หากเราต้องการหาไฟล์ที่มีคำสำคัญ (keyword) ว่า "Unknown parameter" ในไฟล์ต่าง ๆ ใต้ไดเร็กทอรี่ Moodle แต่เราไม่ทราบว่ามันอยู่ที่ไฟล์ใด

เราสามารถจะใช้คำสั่ง

find . | xargs grep 'Unknown parameter'

ซึ่งคำสั่งนี้จะทำให้คอมพิวเตอร์หาไฟล์ต่าง ๆ ใต้ไดเรกทอรี่ปัจจุบัน (.) จากนั้นให้หาคำว่า 'Unknown parameter' ในไฟล์ต่าง ๆ เหล่านั้น

จากการใช้คำสั่งนี้จึงพบว่าข้อผิดพลาด 'Unknown parameter type: 0" เขียนไว้ที่ไฟล์ moodlelib.php  ดังนั้นจึงไม่ถูกต้อง จึงไปโหลด moodlelib.php ใหม่แล้วเก็บไว้ที่เซิร์ฟเวอร์ ซึ่งปรากฎว่าก็ทำให้แก้ปัญหานี้ได้

 

บันทึกนี้เขียนที่ GotoKnow โดย 

คำสำคัญ (keywords): uncategorized
หมายเลขบันทึก: 17829
เขียน:
แก้ไข:
ความเห็น: 6
อ่าน:
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ

ความเห็น (6)

ที่จริงเราสามารถใช้คำสั่ง

grep 'Unknown parameter' *

ได้เลยนะครับ ซึ่งค่าโดยปริยายจะเป็นการค้นหาแบบ Case Sensitive  แต่ในบางทีเราอาจต้องการค้นหาแบบ Case Insensitive เราก็สามารถทำได้โดยใช้พารามิเตอร์ -i ครับ

grep -i 'Unknown parameter' *

ถ้าเราใช้ grep 'Unknown parameter' * จะหาได้เฉพาะจากไฟล์ในไดเรกทอรี่ปัจจุบัน แต่ไม่สามารถหาไฟล์ที่อยู่ใต้ไดเรกทอรี่ปัจจุบันได้

แต่ถ้าเราใช้คำสั่ง find . | grep 'Unknown parameter' 

เราสามารถหาไฟล์ที่มีคำสำคัญได้จากไฟล์ใด  ๆ ที่อยู่ในไดเรกทอรี่ปัจจุบันและอยู่ใต้ไดเรกทอรี่ปัจจุบันค่ะ 

อ๋อครับ ปกติแล้ว ผมไม่แทบจะไม่ใ้ช้คำสั่ง find เลยครับ ส่วนมากจะใช้

 du -a |grep 'Unknow parameter'

 ซึ่งจะให้ผลลัพธ์เช่นเดียวกับ

find . |grep 'Unknow parameter'

 

-type f -exec grep <คำที่ต้องการค้นหา> {} /dev/null ; อย่างเช่น ต้องการค้นหา king60 ในไฟล์ที่อยู่ใต้รูทไดเรกทอรี joomla find joomla -type f -exec grep king60 {} ; อ้างอิงจาก http://www.cs.utk.edu/~plank/plank/classes/cs494/494/notes/Cat/lecture.html
find /home/cs494 -type f -exec grep schizoid {} ;
find /home/cs494 -type f -exec grep schizoid {} \;