App-Greple-tee
view release on metacpan or search on metacpan
docs/src/tee.RO.pod view on Meta::CPAN
=item B<--crmode>
AceastÄ opÈiune înlocuieÈte toate caracterele newline din mijlocul fiecÄrui bloc cu caractere carriage return. Carriage returns conÈinute în rezultatul executÄrii comenzii sunt returnate la caracterul newline. Astfel, blocurile formate din ma...
=item B<--fillup>
CombinÄ o secvenÈÄ de linii care nu sunt goale într-o singurÄ linie înainte de a le trece la comanda de filtrare. Caracterele newline dintre caracterele de lÄÈime mare sunt Èterse, iar celelalte caractere newline sunt înlocuite cu spaÈii.
=item B<--squeeze>
CombinÄ douÄ sau mai multe caractere de linie nouÄ consecutive într-unul singur.
=item B<-ML> B<--offload> I<command>
OpÈiunea B<--offload> a L<teip(1)> este implementatÄ Ã®n modulul diferit L<App::Greple::L> (B<-ML>).
greple -Mtee cat -n -- -ML --offload 'seq 10 20'
De asemenea, puteÈi utiliza modulul B<-ML> pentru a procesa numai liniile cu numÄr par, dupÄ cum urmeazÄ.
greple -Mtee cat -n -- -ML 2::2
=back
=head1 LEGACIES
OpÈiunea B<--blocks> nu mai este necesarÄ acum cÄ opÈiunea B<--stretch> (B<-S>) a fost implementatÄ Ã®n B<greple>. PuteÈi efectua pur Èi simplu urmÄtoarele.
greple -Mtee cat -n -- --all -SE foo
Nu se recomandÄ utilizarea opÈiunii B<--blocks>, deoarece aceasta poate fi depreciatÄ Ã®n viitor.
=over 7
=item B<--blocks>
Ãn mod normal, zona care corespunde modelului de cÄutare specificat este trimisÄ la comanda externÄ. Ãn cazul în care se specificÄ aceastÄ opÈiune, nu zona care corespunde, ci întregul bloc care o conÈine va fi procesat.
De exemplu, pentru a trimite liniile care conÈin modelul C<foo> la comanda externÄ, trebuie sÄ specificaÈi modelul care se potriveÈte cu întreaga linie:
greple -Mtee cat -n -- '^.*foo.*\n' --all
Dar cu opÈiunea B<--blocuri>, se poate face la fel de simplu, dupÄ cum urmeazÄ:
greple -Mtee cat -n -- foo --blocks
Cu opÈiunea B<--blocuri>, acest modul se comportÄ mai mult ca opÈiunea B<-g> de la L<teip(1)>. Ãn rest, comportamentul este similar cu cel al lui L<teip(1)> cu opÈiunea B<-o>.
Nu utilizaÈi B<--blocks> cu opÈiunea B<--all>, deoarece blocul va fi reprezentat de toate datele.
=back
=head1 WHY DO NOT USE TEIP
Ãn primul rând, ori de câte ori puteÈi face acest lucru cu comanda B<teip>, utilizaÈi-o. Este un instrument excelent Èi mult mai rapid decât B<greple>.
Deoarece B<greple> este conceputÄ pentru a procesa fiÈiere document, are multe caracteristici care îi sunt adecvate, cum ar fi controalele zonei de potrivire. Ar putea merita sÄ utilizaÈi B<greple> pentru a profita de aceste caracteristici.
De asemenea, B<teip> nu poate trata mai multe linii de date ca o singurÄ unitate, în timp ce B<greple> poate executa comenzi individuale pe un fragment de date format din mai multe linii.
=head1 EXAMPLE
UrmÄtoarea comandÄ va gÄsi blocuri de text în interiorul documentului de stil L<perlpod(1)> inclus în fiÈierul modul Perl.
greple --inside '^=(?s:.*?)(^=cut|\z)' --re '^([\w\pP].+\n)+' tee.pm
PuteÈi sÄ le traduceÈi prin serviciul DeepL executând comanda de mai sus convinsÄ cu modulul B<-Mtee> care apeleazÄ comanda B<deepl> astfel:
greple -Mtee deepl text --to JA - -- --fillup ...
TotuÈi, modulul dedicat L<App::Greple::xlate::deepl> este mai eficient în acest scop. De fapt, sugestia de implementare a modulului B<tee> a venit de la modulul B<xlate>.
=head1 EXAMPLE 2
UrmÄtoarea comandÄ va gÄsi o parte indentatÄ Ã®n documentul LICENÈÄ.
greple --re '^[ ]{2}[a-z][)] .+\n([ ]{5}.+\n)*' -C LICENSE
a) distribute a Standard Version of the executables and library files,
together with instructions (in the manual page or equivalent) on where to
get the Standard Version.
b) accompany the distribution with the machine-readable source of the Package
with your modifications.
PuteÈi reformata aceastÄ parte utilizând modulul B<tee> cu comanda B<ansifold>:
greple -Mtee ansifold -rsw40 --prefix ' ' -- --discrete --re ...
a) distribute a Standard Version of
the executables and library files,
together with instructions (in the
manual page or equivalent) on where
to get the Standard Version.
b) accompany the distribution with the
machine-readable source of the
Package with your modifications.
OpÈiunea --discrete va porni mai multe procese, astfel încât procesul va dura mai mult timp pentru a se executa. Astfel, puteÈi utiliza opÈiunea C<--separate '\r'> cu C<ansifold> care produce o singurÄ linie folosind caracterul CR în loc de NL...
greple -Mtee ansifold -rsw40 --prefix ' ' --separate '\r' --
Apoi, convertiÈi caracterul CR în NL prin comanda L<tr(1)> sau alta.
... | tr '\r' '\n'
=head1 EXAMPLE 3
LuaÈi în considerare o situaÈie în care doriÈi sÄ cÄutaÈi prin grep Èiruri de caractere din liniile fÄrÄ antet. De exemplu, este posibil sÄ doriÈi sÄ cÄutaÈi numele imaginilor Docker din comanda C<docker image ls>, dar sÄ lÄsaÈi li...
greple -Mtee grep perl -- -ML 2: --discrete --all
OpÈiunea C<-ML 2:> recupereazÄ penultimele linii Èi le trimite cÄtre comanda C<grep perl>. OpÈiunea --discrete este necesarÄ deoarece numÄrul de linii de intrare Èi de ieÈire se modificÄ, dar deoarece comanda este executatÄ o singurÄ datÄ...
DacÄ Ã®ncercaÈi sÄ faceÈi acelaÈi lucru cu comanda B<teip>, C<teip -l 2- -- grep> va da o eroare deoarece numÄrul de linii de ieÈire este mai mic decât numÄrul de linii de intrare. Cu toate acestea, nu existÄ nicio problemÄ cu rezultatul o...
=head1 INSTALL
( run in 1.139 second using v1.01-cache-2.11-cpan-364913b4093 )