[Risolto] [BASH] sed non cancella la linea

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
FreedomSka
Prode Principiante
Messaggi: 40
Iscrizione: mercoledì 8 gennaio 2014, 16:58
Desktop: XFCE
Distribuzione: Xubuntu 14.04 x64

[Risolto] [BASH] sed non cancella la linea

Messaggio da FreedomSka »

Ho un file di testo con diverse linee strutturato in questo modo:

Codice: Seleziona tutto

TITOLO_1
URL_1
TITOLO_2
URL_2
Sto realizzando una parte di codice per rimuovere ad'esempio TITOLO_1 e URL_SITO_1 insieme e il codice che ho realizzato prevede di mostrare il tutto in questo modo

Codice: Seleziona tutto

1. TITOLO_1
3. TITOLO_2
:
Mostra 1 e 3 perchè titoli in questo caso sono rispettivamente alla riga 1 e 3 del file...
per cancellare la riga utilizzo il comando

Codice: Seleziona tutto

# X è il numero della riga da cancellare
sed Xp FILENAME

Il mio problema è che quando prendo il nuero della riga da input e poi vado a fare il sed lui mi duplica la riga e non la cancella... da terminale va tranquillo ma con lo script non va per nulla...
Mi chiedevo se esisteva un'altro modo per cancellare una riga da un file attraverso il numero della riga, Grazie...
Ultima modifica di FreedomSka il domenica 10 maggio 2015, 18:18, modificato 1 volta in totale.
# apt-get update life-*
Avatar utente
crap0101
Rampante Reduce
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: [BASH] sed non cancella la linea

Messaggio da crap0101 »

'p' è per stampare, 'd' per cancellare

Codice: Seleziona tutto

crap0101@orange:/tmp/FOO$ seq 5 > x
crap0101@orange:/tmp/FOO$ cat x
1
2
3
4
5
crap0101@orange:/tmp/FOO$ sed 3p x
1
2
3
3
4
5
crap0101@orange:/tmp/FOO$ sed 3d x
1
2
4
5
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
FreedomSka
Prode Principiante
Messaggi: 40
Iscrizione: mercoledì 8 gennaio 2014, 16:58
Desktop: XFCE
Distribuzione: Xubuntu 14.04 x64

Re: [BASH] sed non cancella la linea

Messaggio da FreedomSka »

Funziona Ok, comunque non so perchè a me da terminale il 'p' cancellava...
# apt-get update life-*
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: [Risolto] [BASH] sed non cancella la linea

Messaggio da vaeVictis »

Controlla se per caso infilavi l'opzione -n da qualche parte (che comunque non fa in modo che p cancelli) e prova a vedere se con il comando "history" ritrovi di preciso il comando che avevi dato.

p.s.: per cancellare una determinata riga (che determini in base al suo contenuto) e la riga successiva, io non procederei in questo modo (ossia, da quanto ho capito, fornendo il numero della riga da cancellare... e magari fornirgli il numero della seconda riga in una seconda istruzione di sed)
Vedo che hai messo risolto, e forse non ho capito bene, però magari userei sed in un altro modo. Fai sapere se sei interessato.
Ultima modifica di vaeVictis il domenica 10 maggio 2015, 22:33, modificato 1 volta in totale.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti