GNU/Linux >> Linux Esercitazione >  >> Linux

Convogliare un elenco di valori in uno script Bash?

Ho un copione. myScript .

Ci vogliono due arg. myScript arg1 arg2 .

Diciamo che ho tre serie di argomenti.

argA1 argB1
argA2 argB2
argA3 argB3

C'è un modo per reindirizzare ogni riga a myScript. Sono aperto ad avere il set di args in un file, forse uso xargs. Non sono sicuro su cosa indagare.

Quindi eseguirei il comando come un falso esempio di seguito:

cat myFile | xargs > myScript

Per non avere un altro script, solo comandi da riga di comando.

Risposta accettata:

Solo:

xargs -l1 <myFile myScript

-l1 dice a xargs per eseguire myScript una volta per ogni 1 l ine di input, con le parole su quel 1 l ine passato come argomenti separati.

Per xargs , le parole sono separate da spazi bianchi e puoi ancora avere spazi bianchi (anche nuove righe) in una parola usando le virgolette. Nota tuttavia che mentre xargs supporta "..." , '...' e \ per citare come la maggior parte delle shell, la sua analisi è diversa da quella delle shell tipo Bourne. In particolare, non c'è elaborazione della barra rovesciata né in "..."'...' e solo \ può sfuggire a una nuova riga.

Ad esempio, myFile potrebbe contenere:

word1.1 word1.2
"word 2.1" 'word 2.2'
"word'3.1" 'word"3.2'
'word"'"4'1" word\"4\'2
'word '\
5.1 "word "\
5.2

E

xargs -l1 <myFile printf 'First word: "%s", second word: "%s"\n'

produrrebbe:

First word: "word1.1", second word: "word1.2"
First word: "word 2.1", second word: "word 2.2"
First word: "word'3.1", second word: "word"3.2"
First word: "word"4'1", second word: "word"4'2"
First word: "word
5.1", second word: "word
5.2"

Con l'implementazione GNU di xargs , puoi migliorarlo in:

xargs -l1 -r -a myFile myScript

Che ha il vantaggio di lasciare stdin da solo e di non eseguire myScript se myFile è vuoto.


Linux
  1. Uno script Bash può essere agganciato a un file?

  2. Il Bash '?

  3. Come dividere una stringa nello script Bash

  4. Esegue lo script bash dall'URL

  5. basename con spazi in uno script bash?

35 Esempi di script Bash

Come eseguire uno script Bash

Aggiungi uno script bash al percorso

Script bash di Linux per estrarre l'indirizzo IP

Corrispondenza del modello di script Bash

Esegui il comando bash sulla pipeline jenkins