eliminare riga di testo da file di testo con bash[Risolto]

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

eliminare riga di testo da file di testo con bash[Risolto]

Messaggioda JordanDunk » martedì 9 maggio 2017, 12:15

Buongiorno a tutti, sto scrivendo uno script nel quale richiedo una parola all'Utente e se questa parola esiste nel mio file di testo viene eliminata la riga in cui la parola si trova. es file1.txt contiene :
Trattato Di Diritto1: Superato
Trattato Di Diritto2: Superato
Trattato Di Diritto3: Superato
Trattato Di Diritto4: Superato
Trattato Di Diritto5: Superato

se nel mio script scrivo 1, oppure 2 etc.. dal mio file di testo viene eliminata solo la riga con 1,oppure 2,3,...
Per ore sono arrivato qua:
nome_file2='file2.txt'
function Number(){
read Number
if ! grep -q "$Number" "$nome_file2"; then
echo -e "numero non trovato\n"
Number
else
echo -e " $Number trovato nel file\n"
fi
}

Number



Grazie a tutti in anticipo
Ultima modifica di JordanDunk il venerdì 19 maggio 2017, 17:47, modificato 1 volta in totale.
JordanDunk
Prode Principiante
 
Messaggi: 45
Iscrizione: aprile 2017
Desktop: Ubuntu
Distribuzione: Ubunto 16.10 | x86_64
Sesso: Maschile

Re: eliminare una riga di testo da un file di testo con bash

Messaggioda thece » martedì 9 maggio 2017, 12:40

:o

Codice: Seleziona tutto
cat FILE.txt | grep -v PAROLA > NUOVOFILE.txt
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7236
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: eliminare una riga di testo da un file di testo con bash

Messaggioda crap0101 » martedì 9 maggio 2017, 14:52

Codice: Seleziona tutto
crap0101@orange:/tmp/foo$ seq 10 > bar
crap0101@orange:/tmp/foo$ cat bar
1
2
3
4
5
6
7
8
9
10
crap0101@orange:/tmp/foo$ sed -i '/5/d' bar
crap0101@orange:/tmp/foo$ cat bar
1
2
3
4
6
7
8
9
10
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
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
 
Messaggi: 8144
Iscrizione: ottobre 2007
Località: TO
Desktop: Lubuntu
Distribuzione: Ubuntu 14.04.3 LTS
Sesso: Maschile

Re: eliminare una riga di testo da un file di testo con bash

Messaggioda thece » martedì 9 maggio 2017, 15:47

:devilmad:

Codice: Seleziona tutto
awk '!/PAROLA/' FILE.txt > NUOVOFILE.txt

:D :p :ciao:
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7236
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: eliminare riga di testo da file di testo con bash

Messaggioda JordanDunk » lunedì 15 maggio 2017, 17:05

si, ma non voglio creare un nuovo file di testo. Vorrei sempre lavorare sullo stesso
JordanDunk
Prode Principiante
 
Messaggi: 45
Iscrizione: aprile 2017
Desktop: Ubuntu
Distribuzione: Ubunto 16.10 | x86_64
Sesso: Maschile

Re: eliminare riga di testo da file di testo con bash

Messaggioda JordanDunk » lunedì 15 maggio 2017, 17:08

Ho spiegato meglio quello che vorrei fare al seguente link: viewtopic.php?f=33&t=621060
JordanDunk
Prode Principiante
 
Messaggi: 45
Iscrizione: aprile 2017
Desktop: Ubuntu
Distribuzione: Ubunto 16.10 | x86_64
Sesso: Maschile

Re: eliminare riga di testo da file di testo con bash

Messaggioda thece » lunedì 15 maggio 2017, 17:09

JordanDunk Immagine ha scritto:si, ma non voglio creare un nuovo file di testo. Vorrei sempre lavorare sullo stesso

Al di là del comando che sceglierai ti suggerisco una tecnica del tutto generale: si elabora il file sorgente e si scrive il risultato in un file temporaneo. Terminata l'elaborazione, se avvenuta con successo, si rinomina il file temporaneo con il nome del file sorgente
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7236
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: eliminare riga di testo da file di testo con bash

Messaggioda JordanDunk » lunedì 15 maggio 2017, 17:14

c'è un comando che lo fa o devo farlo manualmente?
JordanDunk
Prode Principiante
 
Messaggi: 45
Iscrizione: aprile 2017
Desktop: Ubuntu
Distribuzione: Ubunto 16.10 | x86_64
Sesso: Maschile

Re: eliminare riga di testo da file di testo con bash

Messaggioda thece » lunedì 15 maggio 2017, 17:20

JordanDunk, senza alcuna cattiveria, ma lo script te lo dobbiamo scrivere noi oppure ci metti un pò del tuo? Prima di fare questo genere di domande, di sicuro lecite, prova a fare una piccola ricerca in Rete

- come si scrive un script Bash
- come si fa un costrutto "if then else"
- come si rinomina un file
...

Le guide e la documentazione vengono scritti apposta
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7236
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14

Re: eliminare riga di testo da file di testo con bash

Messaggioda JordanDunk » lunedì 15 maggio 2017, 18:14

Ho letto molte guide, ma quando provo a fare qualcosa di un pelo più complicato non mi riesce. Io non voglio farmi fare niente da nessuno, ma solo vorrei capire come fare questo script e che qualcuno poi gentilmente me lo spieghi
JordanDunk
Prode Principiante
 
Messaggi: 45
Iscrizione: aprile 2017
Desktop: Ubuntu
Distribuzione: Ubunto 16.10 | x86_64
Sesso: Maschile

Re: eliminare riga di testo da file di testo con bash

Messaggioda thece » lunedì 15 maggio 2017, 21:20

JordanDunk Immagine ha scritto:... ma solo vorrei capire come fare questo script e che qualcuno poi gentilmente me lo spieghi

Cosa deve contenere lo script ti è stato detto, ti sono state fornite tre soluzioni. Facciamo così: scegline una, inseriscila in uno script, fai le modifiche / adattamenti che ritieni opportune e poi ne discutiamo



PS: se lo script te lo scrive @UbuNuovo e poi me lo passi per capire cosa ne penso, non vale. Così non impari nulla.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7236
Iscrizione: aprile 2007
Distribuzione: Debian 8 (Jessie) - KDE 4.14


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: nuzzopippo e 1 ospite