Debianizzati.Org | Forum | Blog | Guide | IRC
 
 
Forum Italiano Debian - Debianizzati.Org
Novembre 23, 2008, 11:17:54 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Aiuto Ricerca Agenda Accedi Registrati  
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Inserire testo in un file in modo ricorsivo  (Letto 587 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
pirpy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 45


Mostra profilo E-mail
« inserita:: Ottobre 16, 2007, 11:07:17 pm »

Ho questo problema:
ho un file con una lista di nomi fatto in questa maniera:

file_listanomi
mario
antonio
sara
maria
mara
paolo
mariarosa
....

vorrei creare un file che per ogni nome contenuto in file_listanomi avesse le seguenti righe:

file_risultato
<mario>
</mario>
<antonio>
</antonio>
<sara>
</sara>
.....
.....

come posso fare?
Grazie in anticipo per il vostro aiuto
Registrato
tindal
Administrator
Hero Member
*****

Karma: +66/-1
Scollegato Scollegato

Messaggi: 2614


Mostra profilo E-mail
« Risposta #1 inserita:: Ottobre 16, 2007, 11:38:19 pm »

per es. così:
Codice:
for name in $(cat file) ; do echo -en "<$name>\n<\\"; echo "$name>";done

nota: il primo comando echo interpreta i caratteri di escape (opzione -e), così va a capo con \n (che ci serve), fa un tab con \t e produce un suono con \a, se però un nome inizia con "n", "t" o "a" questo fa sì che, per es., la stringa <\antonio> che vogliamo scrivere diventi <BIPntonio> (provare per credere)

a me è venuto in mente solo il workaround che ho scritto, ma probabilmente ce ne sono altri

ciao
tindal
Registrato

Se ci sono molti modi diversi per fare una certa cosa, ed uno di questi ha conseguenze disastrose, di sicuro qualcuno la farà in quel modo.
metaldaze
Global Moderator
Hero Member
*****

Karma: +29/-3
Scollegato Scollegato

Messaggi: 1029


Mostra profilo
« Risposta #2 inserita:: Ottobre 17, 2007, 04:18:00 am »

Un'alternativa sarebbe mischiarci un po' di perl

perl -e 'foreach (`cat file`) { chomp; system("echo \"<$_>\n</$_>\"")}'

ma in termini di lunghezza del comando non cambia nulla direi Smiley
« Ultima modifica: Ottobre 17, 2007, 01:00:58 pm da metaldaze » Registrato
Finn
Global Moderator
Hero Member
*****

Karma: +30/-6
Scollegato Scollegato

Messaggi: 1195


207002659
Mostra profilo
« Risposta #3 inserita:: Ottobre 17, 2007, 09:47:33 am »

Concordo con le soluzioni postate da tindal e metaldaze (più con il primo ma per una mia avversione al perl Tongue)

Solo non mi è chiaro il "in modo ricorsivo", le soluzioni proposte sono iterative, si può fare anche ricorsivamente ma mi sembra uno spreco di risorse.

Giusto per i posteri, questo è un abbozzo di sistema ricorsivo (ovvero non l'ho testato ma dovrebbe rendere l'idea):
Codice:
#!/bin/bash

print_recursive() {
if [ "$*" ]; then
echo -e "<$1>\n<\\$1>\n"
shift
print_recursive "$@"
fi
}

print_recursive `cat file_listanomi`
« Ultima modifica: Ottobre 17, 2007, 09:49:09 am da Finn » Registrato
jejenio
e-zine member
Jr. Member
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 70


Mostra profilo E-mail
« Risposta #4 inserita:: Ottobre 19, 2007, 09:50:18 am »

Per par-condicio, versione per chi adora il perl:

Codice:
#!/usr/bin/perl -w
#

if(open(F,$ARGV[0])){
    while(<F>) {
        chomp;
        print "<$_>\n</$_>\n";
    }
} else {
    print STDERR "$!\n";
}

da usare così:

$ nome_script file_listanomi > file_risultato

Ciao
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Altri Topic Correlati
Oggetto Aperta da Risposte Visite Ultimo messaggio
Sostituire/Aggiungere testo in un file Scripting pirpy 9 957 Ultimo messaggio Agosto 06, 2007, 04:42:45 pm
da pirpy
Condividere file in lan in modo sicuro. come? Network Krayn 5 335 Ultimo messaggio Maggio 06, 2007, 03:42:36 pm
da Eremar
Procmail: incompatibilità inspiegabile con file di testo Network gattaccio7 0 133 Ultimo messaggio Ottobre 29, 2007, 09:47:18 am
da gattaccio7
manipolazione di un luungo file di testo: Scripting Barzi 3 508 Ultimo messaggio Dicembre 02, 2007, 06:25:17 pm
da gallows
Aggiungere testo di un file in un altro file Scripting pirpy 2 459 Ultimo messaggio Novembre 26, 2007, 02:41:50 pm
da pirpy
Powered by MySQL Powered by PHP Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC XHTML 1.0 valido! CSS valido!
Pagina creata in 0.082 secondi con 21 interrogazioni al database.