Buongiorno a tutti, sono nuovo nell'ambiente bash e volevo scrivere uno script che confronti due file di testo.
Per esempio file1.txt contiene : Andrea:BigHouse:45:23
Luca:Luca_Ope:77:900
Giacomo:TheBoss:95:55
Antonio:Anto85:11:900
file2.txt contiene: Operaio:900
Imprenditore:23
Vice Presidente:320
Presidente:55
nello script vorrei scrivere un nome del file2.txt e lo script mi stampa il nome del file2.txt e solo il nome di quelli associati al file1.txt
es: se scrivo Operaio lo script mi dovrebbe stampare Operaio Luca
Antonio
inoltre se chiamo Vice Presidente mi dovrebbe segnalare che non ci sono persone
io ho provato con il join in mille modi ma non mi va non so perchè...
Grazie in anticipo
[Risolto] Vedere la corrispondenza tra due file nella bash
-
JordanDunk
- Prode Principiante
- Messaggi: 55
- Iscrizione: lunedì 24 aprile 2017, 15:48
- Desktop: Ubuntu
- Distribuzione: Ubunto 16.10 | x86_64
- Sesso: Maschile
[Risolto] Vedere la corrispondenza tra due file nella bash
Ultima modifica di JordanDunk il martedì 9 maggio 2017, 11:11, modificato 1 volta in totale.
- crap0101
- Rampante Reduce

- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: Vedere la corrispondenza tra due file nella bash. Help
join non mi sembra lo strumento più adatto... meglio usare qualcosa tipo awk.
imho, eviterei il "confronto" come se stessi facendo un diff... la cosa migliore mi sembra leggere il primo file e salvare (internamente al programma) i dati in un formato usabile e, a quel punto, fare i confronti leggendo i dati dal secndo file.
imho, eviterei il "confronto" come se stessi facendo un diff... la cosa migliore mi sembra leggere il primo file e salvare (internamente al programma) i dati in un formato usabile e, a quel punto, fare i confronti leggendo i dati dal secndo file.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
-
JordanDunk
- Prode Principiante
- Messaggi: 55
- Iscrizione: lunedì 24 aprile 2017, 15:48
- Desktop: Ubuntu
- Distribuzione: Ubunto 16.10 | x86_64
- Sesso: Maschile
- crap0101
- Rampante Reduce

- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: Vedere la corrispondenza tra due file nella bash.
Codice: Seleziona tutto
crap0101@orange:/tmp/foo$ awk -F: -v q=Operaio 'FNR==NR {ids[$1]=$2} FNR!=NR && $4 == ids[q] {printf "%s: %s\n", q, $1}' file2 file1
Operaio: Luca
Operaio: Antoniohttp://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
-
JordanDunk
- Prode Principiante
- Messaggi: 55
- Iscrizione: lunedì 24 aprile 2017, 15:48
- Desktop: Ubuntu
- Distribuzione: Ubunto 16.10 | x86_64
- Sesso: Maschile
Re: Vedere la corrispondenza tra due file nella bash.
Ottimo grazie mille

Chi c’è in linea
Visualizzano questa sezione: Bing [Bot] e 3 ospiti