windows - Hvorfor lever grep -a til konsol?

Indlæg af Hanne Mølgaard Plasc

Problem



Når man laver grep -a 5 "SEARCHSTRING" FILE.txt, synes grep at udskrive søgningen af ​​filen til konsollen i realtid, som jeg finder både nyttig og cool. Men når jeg bare laver grep "SEARCHSTRING" FILE.txt eller grep -i -n --color -C 5 "SEARCHSTRING" FILE.txt, får jeg den sædvanlige blinkende markør, mens den behandler filen.


Hvorfor udsender grep -a til konsol under søgning i en fil, og hvordan kan jeg replikere denne adfærd uden at bruge indstillingen -a?

Bedste reference


Bemærk, at dine flere spørgsmål om grep ikke handler om programmering, og det ser ud til, at du ikke har læst omhyggeligt manualen til grep.
Fra man grep ser jeg:


  -a, --text
          Process a binary file as if it were text; this is equivalent  to
          the --binary-files=text option.


Så det omdirigerer IKKE output, og standard er stadig konsol.
Der er ingen mulighed, som jeg er opmærksom på, der forsinker output.


Yderligere note:
grep -a 5 "SEARCHSTRING" FILE.txt betyder åbne indgange i binær tilstand og søge efter strenge 5 i filer SEARCHSTRING og File.txt; så du vil have flere kampe end grep "SEARCHSTRING" FILE.txt hvor du spørger i stedet for SEARCHSTRING i File.txt. Måske er dette, hvorfor du ser øjeblikkelig produktion og forsinket en? I det første tilfælde har du sandsynligvis meget flere kampe. Du kan bekræfte det med


grep -a 5 "SEARCHSTRING" FILE.txt |wc -l 
grep -i "SEARCHSTRING" FILE.txt |wc -l 


og sammenlign antallet af kampe. wc -l tæller antallet af linjer