ฉันใช้ubuntu 14.4
และพยายามเปลี่ยนเส้นทางผลลัพธ์ของgrep
คำสั่งไปยังไฟล์ แต่ฉันได้รับข้อผิดพลาดนี้:
grep: input file 'X' is also the output
ฉันค้นหาปัญหานี้แล้วและเพิ่งพบว่าเป็นข้อผิดพลาดubuntu 12.4
และไม่มีคำอธิบายใด ๆ ใครสามารถช่วยฉันหาปัญหานี้ได้บ้าง
ฉันเรียกใช้คำสั่งต่อไปนี้:
grep -E -r -o -n r"%}(.*){%" > myfile
ฉันเพิ่มคำสั่งของฉัน! ขอบคุณสำหรับคำใบ้ แต่เมื่อฉันพยายามที่จะใช้ไฟล์ในเส้นทางอื่น ๆ มันไม่ได้บ่งบอกมันและฉันก็ทำอย่างนั้นไม่ได้!
—
Kasramvd
เช่นกับ ../fi รับสิ่งนี้
—
Kasramvd
bash: ../f.txt: Permission denied
แสดงคำสั่งแบบเต็มไฟล์อินพุตของคุณคืออะไรหรือคุณกำลังใช้ไพพ์
—
jimmij
ตอนนี้ฉันเข้าใจแล้วว่าคุณกำลัง greping โครงสร้างไดเรกทอรีทั้งหมดซ้ำและต้องการผนวกผลลัพธ์ไปยังไฟล์ที่มีอยู่แล้วในโครงสร้างนี้ ปัญหาคือเชลล์ (bash, zsh, อะไรก็ตาม) ก่อนทำการเปลี่ยนเส้นทางจากนั้นกลับไปที่คำสั่ง (grep ในตัวอย่างนี้) หมายความว่า
—
jimmij
grep
ในคำสั่งgrep pattern file > file
เห็นไฟล์ที่ว่างอยู่แล้วดังนั้นจึงไม่มีอะไรเป็นอินพุต อย่างไรก็ตามหากคุณใช้>>
แทน>
ไฟล์จะไม่ว่างเปล่า แต่ grep จะแสดงข้อผิดพลาดเนื่องจากอาจทำให้เกิดการประมวลผลซ้ำในบรรทัดเดียวกัน (รูปแบบ) ซ้ำแล้วซ้ำอีก
grep pattern file > file
แล้วมันไม่ทำงาน คุณไม่สามารถใช้ไฟล์เดียวกันกับอินพุตและเอาต์พุตสำหรับ grep