Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Formare record da una colonna sola
#1
Patel aveva sottoposto un problemino che prima o dopo un po' tutti si trovano davanti.

http://www.istitutomajorana.it/forum/Thr...eno-per-me


Prima soluzione: script

Con bash avevo proposto questo script
Codice:
#!/bin/bash

file="lista.txt"

nnomi= #numero dei nomi da ricercare

function leggilista {
     risp=$((${x}*3-2))
     cognome=$(($risp+1))
     nome=$(($cognome-1))
     indirizzo=$(($risp+2))
     NOME=$(sed -n "${nome}p" $file)
     COGNOME=$(sed -n "${cognome}p" $file)
     INDIRIZZO=$(sed -n "${indirizzo}p" $file)
     return
     }

for x in `seq 1 ${nnomi}`;
     do
     leggilista
     echo " $NOME § $COGNOME § $INDIRIZZO"
     done
per processare la lista da riincollare poi nel foglio di calcolo usando il simbolo § come separatore dei campi.
Fra i vari problemini che ha, però, il più grave è che funziona solo se tutti i nominativi hanno cognome e indirizzo: quindi né più né meno di 3 campi a testa.

Seconda soluzione: da CLI

Senza fare lo script ma direttamente da CLI si può invece fare un'altra cosa:
Mettere un marcatore (Es: ACCAPO) a sinistra di ogni nome (ovvero del primo campo di ogni futuro record):
ACCAPO Nome
Cognome
Indirizzo

dopodiché da linea di comando
Codice:
$ sed -e '/*/d' lista.txt | tr '\n' ^ > lista2.txt && sed -e 's/ACCAPO/\n/g' lista2.txt > lista3.txt
e si avrà lista3.txt pronto a essere incollato nel foglio di calcolo con ^ come separatore.

Ancora più semplicemente
Codice:
$ sed -e '/*/d' lista.txt | tr '\n' '^' | sed 's/ACCAPO/\n/g'
darà l'output formattato direttamente nella shell.


NB- Ho cambiato il segno del separatore perché la codifica dei caratteri della shell ha ancora molti ma molti misteri per me... Big Grin
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)