[bash] pipe multiplo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

[bash] pipe multiplo

Messaggio da london3 »

Codice: Seleziona tutto

~$ alias abc='echo abc | cat'
~$ echo xyz | abc 
abc
Io però mi aspettavo questo output

Codice: Seleziona tutto

abcxyz
Praticamente xyz si perde nel nulla

Come risolvere?
Computer: Lenovo ThinkPad L480
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [bash] pipe multiplo

Messaggio da rai »

Come risolvere?

Codice: Seleziona tutto

$ f() { echo abc${1}; }
$ f xyz
abcxyz
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [bash] pipe multiplo

Messaggio da london3 »

Allora

Codice: Seleziona tutto

$ echo abcxyz | cat -n
     1	abcxyz
Però vorrei ottenere lo stesso risulltato tramite un alias/funzione che mi permette di inserire automaticamente il prefisso abc

Esempio 1

Codice: Seleziona tutto

$ echo xyz | my-cat-prefix-abc -n
     1	abcxyz
Esempio 2

Codice: Seleziona tutto

$ echo xyz | my-cat-prefix-abc -n -A
     1	abcxyz$
Computer: Lenovo ThinkPad L480
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [bash] pipe multiplo

Messaggio da rai »

Con qualche dettaglio in più su quello che devi fare forse ti si potrebbe aiutare meglio. Mi attengo a quanto scrivi:
inserire automaticamente il prefisso abc

Codice: Seleziona tutto

$ alias f='cat -n <(printf abc) -'
$ echo xyz | f
     1  abcxyz
$ 
se c'è bisogno di qualcosa di più elaborato si può mandare in pipe a un tool più duttile tipo awk con cui puoi fare praticamente tutto
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [bash] pipe multiplo

Messaggio da london3 »

rai ha scritto:
venerdì 10 marzo 2023, 12:33
Con qualche dettaglio in più su quello che devi fare forse ti si potrebbe aiutare meglio. Mi attengo a quanto scrivi:
inserire automaticamente il prefisso abc

Codice: Seleziona tutto

$ alias f='cat -n <(printf abc) -'
$ echo xyz | f
     1  abcxyz
$ 
Lo STDIN aggiuntivo (echo xyz) deve essere opzionale.
L'opzione -n non deve essere specificata nell'alias, e vorrei avere anche la possibiltà di specificare quante opzioni/argomenti voglio.
In pratica vorrei avere una vasta versatilità

Codice: Seleziona tutto

$ echo xyz | my-cat-prefix-abc -n -A
$            my-cat-prefix-abc -n -A
$ echo xyz | my-cat-prefix-abc
$ echo xyz | my-cat-prefix-abc -A
se c'è bisogno di qualcosa di più elaborato si può mandare in pipe a un tool più duttile tipo awk con cui puoi fare praticamente tutto
Mi sa che anche questa cosa è da prendere in considerazione.
Computer: Lenovo ThinkPad L480
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 23 ospiti