ฉันเคยgrep -rilดูไฟล์ทั้งหมดที่มีสตริงบางตัว:

[[email protected]]$ grep -ril "test string"
file1.log
file2.log
file3.log
file4.log
...

ฉันต้องการซิปไฟล์ทั้งหมดที่ส่งคืนโดยคำสั่งนั้น เป็นไปได้ไหม

ฉันได้พยายามสิ่งต่างๆเช่นgrep -ril myPattern | zip files.zipและgrep -ril myPattern | zip > files.zipแต่ไม่มีอะไรได้ทำงานเพื่อให้ห่างไกล

มีวิธีแก้ปัญหานี้หรือไม่?

ขอขอบคุณ.

answer

ใช้สวิตช์บรรทัดคำสั่งzip[email protected]เพื่อzipดึงรายการไฟล์อินพุตจากอินพุตมาตรฐานแทนจากบรรทัดคำสั่ง ตัวอย่างเช่น,

grep -ril "test string" | zip name-of-new-zip-file [email protected] 

คุณสามารถลองใช้คำสั่งด้วยวิธีนี้:

zip zipfile.zip `grep -ril "test string"`