Ho un file di testo in quello che sembra:
Jose Santiago:385-898-8357:385-555-5555:38 Fife Way, Abilene, TX 39673:1/5/58:95600
Tommy Savage:408-724-0140:408-777-0121:1222 Oxbow Court, Sunnyvale, CA 94087:5/19/66:34200
Yukio Takeshida:387-827-1095:387-888-1198:13 Uno Lane, Ashville, NC 23556:7/1/29:57000
Vinh Tranh:438-910-7449:438-999-0000:8235 Maple Street, Wilmington, VM 29085:9/23/63:68900
Sto cercando di scrivere uno script tcsh che leggeràil file di testo e assegnare ciascun campo delimitato da due punti a una variabile, con l'eccezione del nome, che voglio impostare su due variabili separate. Ho provato diverse cose, ma non riesco a farlo funzionare. Mi dispiace, ma sono un novizio. Grazie in anticipo per qualsiasi aiuto.
risposte:
0 per risposta № 1Supponendo che la variabile name abbia sempre solo due parole separate da uno spazio, è possibile prima sostituire lo spazio con a :
e poi usare cut per ottenere il campo in variabili:
sed "s/ /:/" <filename >new_file
set var1 = `cut -f1 -d ":" new_file`
set var2 = `cut -f2 -d ":" new_file`
set var3 = `cut -f3 -d ":" new_file`
ecc. per ogni campo nel tuo file
PS: Se non ti interessa riscrivere il tuo file originale, puoi sostituire in linea:
set -i.bak "s/ /:/" filename