A grep kézikönyv a következőképpen írja le a -I zászlót :

-I Ignore binary files. This option is equivalent to --binary-file=without-match option. 

Ezt a bináris fájlokról is mondja:

 --binary-files=value Controls searching and printing of binary files. Options are binary, the default: search binary files but do not print them; without-match: do not search binary files; and text: treat all files as text. 

Nem tudok gondolkodni egy olyan forgatókönyv, ahol érdekelne a bináris fájlokban lévő egyezések. Ha létezik ilyen forgatókönyv, bizonyára inkább kivételnek, mint normának kell lennie. Miért nem “t grep alapértelmezés szerint figyelmen kívül hagyja a bináris fájlokat, ahelyett, hogy ehhez ezt a zászlót kellene beállítani?

Megjegyzések

  • Beállíthatja a GREP_OPTIONS változót az előnyben részesített beállításokra, majd nem kell ' használni annyi parancssori kapcsolót. .
  • Megjegyzés más parancsokhoz, amelyek nem támogatják az ilyen változót: Alapértelmezett beállításokat állíthat be, ha definiál egy álnevet a .(ba|z|foo)shrc': álnevében a grep = " grep -I " `.
  • Ez valójában nagyon hasznos lehet. Például az unity verziót kerestem egy projektet, és nem tudtam ' emlékezni arra, hogy melyik fájlban volt tárolva. Megkerestem a verzió formátumát, és előállt néhány bináris fájl, amely megfelel. Kiderült mivel az 5. verzió előtti volt, a verzió csak bináris fájlban volt, így a bináris egyezés nélkül talán hiányzott.
  • FYI Ther e ' sa eszköz ack , amely " jobb, mint grep ". Az Ack nem keres

bináris fájlokat. A Debianban " ack-grep " néven szerepel.

Válasz

Nem minden, amit a grep bináris fájlnak gondol, valójában bináris fájl. például. a báb naplóiban van színkódolás, ami arra készteti a grepet, hogy bináris legyen. Még mindig szeretnék rájuk keresni, ha mégis átfutok a / var / log oldalon.

Megjegyzések

  • Ugyanez vonatkozik a PDF fájlokra is, mint jól.
  • + a grep történelmileg NEM tudta ezt megtenni, ezért csak a kompatibilitás érdekében az alapértelmezésnek mindent átfogónak kell lennie.
  • @OlivierDulac van értelme, különben a bináris fájlok figyelmen kívül hagyása kell, hogy legyen alapértelmezett.

Válasz

grep keresési képesség A bináris fájlok akkor is hasznosak, amikor programot állítok össze, és a linker (ld) panaszkodik, hogy néhány funkció nem található. Használhatok egy olyan parancsot, mint a

grep function_name /lib/lib*

az azt tartalmazó könyvtár megkeresésére. (A könyvtárak bináris fájlok.)

Megjegyzések

  • Ebben az esetben inkább ' használja grep -l function_name /lib/lib* vagy nm -Do /lib/lib* | grep function_name vagy ldconfig -p | grep -o '/.*/lib.*' | xargs nm -Do | grep function_name.
  • Nos, grep some_function /lib/* rövidebb, és általában helyes választ ad – a keresett könyvtár neve. De igen, néha szükség van az Önéhez hasonló kifinomultabb megközelítésre is.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük