Salve, non mi dite "studia bash" perché non sono capace, studiare è una cosa che manca nel mio DNA :) :(

Ci sono 32 stringhe, ho bisogno di aggiungere 7 stringhe tra ogni coppia di esse, è possibile?
Ad esempio così.

Saluti e Grazie

chiesto 18 Mag '15, 22:26

Davide_74's gravatar image

Davide_74
617255974

modificato 20 Mag '15, 19:07

enzotib's gravatar image

enzotib ♦♦
14.0k112186

Spiega meglio per favore.

Tra ogni due stringhe devi inserirne 7?
Oppure devi inserirne 7 tra, che so, la 14^ e la 15^?
Oppure ancora inserirne una tra la 2^ e la 3^, una tra la 10^ e la 11^, ecc?

(18 Mag '15, 23:15) dadexix86 ♦♦ dadexix86's gravatar image
1

ok cerco di essere più chiaro,con un minimo di esempio,in pratica devo creare uno script con vari passaggi.

cmq si tra ogni 2 stringhe devo inserirne 7.

http://paste.ubuntu.com/11213256/

(18 Mag '15, 23:38) Davide_74 Davide_74's gravatar image

Ciao @Davide_74

Non ho ben capito dove si trovano queste stringhe (le 7). Sono in un file in input. Oppure sono 7 variabili? Oppure sono tutte contenute in una variabile (separate da \n o simili).

Lo stesso discorso vale per le 32 stringhe, dove sono?

Così ad occhio ti direi che si può risolvere con un for, anche se non ho ben capito.

(20 Mag '15, 17:28) corti-nico corti-nico's gravatar image

le 32 stringhe sono in un file,le 7 stringhe sono in un altro file quindi,devo prendere le 7 stringhe ed inserirle sotto la prima delle 32 poi sotto la seconda delle 32 e via discorrendo.

Salitui e Grazie

(20 Mag '15, 18:41) Davide_74 Davide_74's gravatar image

Qualcosa del genere?

string7="$(<file7)"
{
  IFS= read -r line
  echo "$line"
  while IFS= read -r line; do
    echo "$string7"
    echo "$line"
  done
} < file32

Attenzione che anche le righe vuote, magari alla fine dei file, vengono trattate, e potrebbero indurre a pensare che lo script non funziona.
Naturalmente poi, se vuoi l'output su un file, aggiungi in coda all'ultima istruzione, ma sulla stessa riga, ">file-di-output".

coll. permanente

ha risposto 20 Mag '15, 19:00

enzotib's gravatar image

enzotib ♦♦
14.0k112186

modificato 20 Mag '15, 19:10

Puoi provare nel modo seguente:

#!/bin/bash
while read line 
do
        echo "$line"
        echo "$(cat $2)"
done < $1

Per passare i due file è sufficiente che tu invochi lo script bash nel modo seguente

./mioscript.sh file32righe.txt file7righe.txt

Se invece hai i file nelle variabili dello script, puoi cambiare $1 e $2 con i nomi delle variabili che contengono i 2 file.

coll. permanente

ha risposto 20 Mag '15, 19:13

corti-nico's gravatar image

corti-nico
891319

modificato 20 Mag '15, 19:14

enzotib's gravatar image

enzotib ♦♦
14.0k112186

1

@corti-nico: il modo preferenziale per formattare blocchi di codice è premettere ad ogni riga quattro spazi (più una riga vuota prima e dopo il blocco).

(20 Mag '15, 19:16) enzotib ♦♦ enzotib's gravatar image

cmq ieri mentre aspettavo una risposta ho risolto in un altro modo,ma ho dovuto fare un macello,magari cancello tutto il mio lavoretto e provo. Prima di iniziare a capire come applicare i metodi di cui sopra,volevo chiedere una cosa,il file a 32 stringhe di cui inserisco le 7 stringhe in realtà è uno script quindi c'è il famoso #!/bin/bash "la verità non so a cosa serve di preciso il #!/bin/bash" noto anche senza i comandi funzionano,ritornando al file a 32 le 7 stringhe vengono aggiunte anche sotto il #!/bin/bash ? perchè se così fosse allora inutile provare :):(

Grazie

(20 Mag '15, 20:34) Davide_74 Davide_74's gravatar image

@Davide_74

Purtroppo è molto probabile che tu stia sbagliando approccio. Stai cercando di utilizzare uno script bash per generare un nuovo script bash (che presumibilmente ti servirà per fare qualcosa...)

Forse è meglio se scrivi direttamente lo script che vuoi generare, così vediamo di risolvere assieme (con un solo script).

Il comando #!/bin/bash serve per indicare al sistema che quello che si andrà ad eseguire sarà appunto uno script bash. Non è indispensabile (se invochi con bash mioscript.sh funziona comunque) ma è caldamente consigliato.

(21 Mag '15, 14:19) corti-nico corti-nico's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×139
×93
×1

domanda posta: 18 Mag '15, 22:26

domanda visualizzata: 1,085 volte

ultimo aggiornamento: 21 Mag '15, 14:19

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.