@kkt1
presne, suhlasim. Ja najradsej pouzivam glogg, ale ked mam nieco rychlo najst na produkcnom stroji, tak grep/zgrep a pre zlozitejsie pripady awk su uplne super nastroje.
Na skole sme mali asistenta, ktory nas mucil tymito standardnymi unixovymi nastrojmi a neznasal som ho. Este stale ho neznasam, ale zrucnosti, ktore nas naucil su na nezaplatenie :)
Pretoze pouzitie hlupeho grepu siaha ovela dalej, ako ze si v zdrojovom strome z terminalu potrebujem najst vsetky vyskyty "enable_". Primitivna jednoucelova utilita, ktora svoju jedinu ulohu robi dobre je nenahraditelna pre rychle pisanie skriptov, ktore potrebuju pracovat v heterogennom prostredi.
Ano videl som Pythonie skripty, ktore robili +- to, co dokaze find spojeny s grepom, sedom a awkom. Vacsinou na jeden riadok bashoveho zlepenca pripadalo tak 30 riadkov Pythonu a bolo treba setsakra dobre studovat, co to vlastne robi.
To co pises, nic nedokazuje. Urcite se najde pripad, kdy je grep a spol. nejcistejsi reseni, na druhou stranu u shellovych skriptu je problem, ze kdyz s nimi nekdo zacne, nezna hranici, kde je jejich pouziti jeste dobry napad. Reseni v Pythonu nebo jinem GPL je skalovatelne prakticky donekonecna a pokud je skript v Pythonu nepochopitelny, psalo ho nejspis prase.
"To co pises, nic nedokazuje. Urcite se najde pripad, kdy je grep a spol. nejcistejsi reseni"
Druha veta priamo popiera tu prvu...
Rozhodujuce pravidlo pri skriptoch IMHO je, ci je tazisko "vypoctu" (processingu) v skripte, alebo skript funguje len ako prepajac a tak maximalne vyluska a prechrume data z jedneho formatu do druheho.
V tom druhom pripade je shellskript pouzivajuci filtre ciste a preferovane riesenie. V tom prvom nie.
Napr. ja v niektorych pripadoch spustam allmigty oneliner, ktory mi zo skompilovanych objektov vytahuje velkost symbolu a patchuje nou XML na inom mieste. Cele je to kratsie ako 100 znakov a funguje to. Je to tak primitivne, ze sa to neoplati pisat v Pythone a zaroven existuje implementacia, kde by slo pouzit grep ale ripgrep by bol zbytocny az nepouzitelny.
FYI ohladom pokrocilejsieho egrepu:
$ man egrep
GREP(1) General Commands Manual
NAME
grep, egrep, fgrep, rgrep - print lines matching a pattern
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
DESCRIPTION
...
In addition, the variant programs egrep, fgrep and rgrep are the same as grep -E, grep -F, and grep -r, respectively. These variants are deprecated, but are provided for backward
compatibility.