Puncte:0

Zip toate fișierele returnate de la comanda „grep-ril”.

drapel lc

eu folosesc grep -ril pentru a putea vedea toate fișierele care conțin un anumit șir:

[utilizator@mașină]$ grep -ril „șir de testare”
fisier1.log
fisier2.log
fisier3.log
fisier4.log
...

Apoi aș dori să zip toate fișierele care au fost returnate de acea comandă. Este posibil?

Am încercat lucruri precum grep -ril myPattern | fișiere zip.zip și grep -ril myPattern | zip > files.zip dar nimic nu a funcționat până acum.

Există o soluție pentru asta?

Mulțumesc.

Puncte:2
drapel cn
Bob

Folosește fermoar comutator de linie de comandă -@ a avea fermoar luați lista fișierelor de intrare din intrarea standard în loc de din linia de comandă. De exemplu,

grep -ril „șir de test” | zip numele-noul-fișier-zip -@ 
Puncte:0
drapel in

Puteți încerca comanda în acest fel:

zip zipfile.zip `grep -ril "șir de testare"`
Ginnungagap avatar
drapel gu
Acest lucru suferă de problema obișnuită „orice fișier cu un spațiu sau care începe cu o liniuță”, care îl face să nu fie generic, să nu fie stabil și, în general, un obicei prost, deoarece poate cauza probleme de securitate în unele cazuri.
Romeo Ninov avatar
drapel in
@Ginnungagap, IMHO același lucru pentru răspunsul lui Bob
Ginnungagap avatar
drapel gu
Probabil suferă de linii noi în numele fișierelor, dar nu suferă de faptul că un fișier numit `-o` (de exemplu) este interpretat ca o comutare în linia de comandă de către `zip` și nici nu suferă de `nume fișier cu spațiu` (din nou, pt. exemplu) fiind interpretat ca 3 fișiere separate. Și, ca regulă generală, este mai bine să se pipeteze decât să se extindă pe linia de comandă, deoarece este puțin probabil să schimbe comportamentul programului invocat.
Ginnungagap avatar
drapel gu
De fapt, căutând un document care să ilustreze acest lucru, am dat peste [this](https://insinuator.net/2014/12/revisiting-an-old-friend-shell-globbing/) care explică problema și de fapt listează `zip ` ca o problemă de securitate cu acest tip de invocare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.