Salve,come da titolo.

Conoscendo soltanto questo metodo:

sed -i "s/parola_da_sostituire/parola_d_applicare/g" /percorso/file.txt

per sostituire la parola a più file conoscendo già l'estensione faccio così:

sed -i "s/parola_da_sostituire/parola_d_applicare/g" /percorso/*.txt

adesso il problema è un altro, c'è un modo per cambiare una parola a più file ma, non conoscendo l'estensione? Cioè i file in questione non hanno estensione.

Un Grazie anticipatamente, ho chiesto subito per evitare di fare un altro veglione.

Saluti

chiesto 23 Dic '14, 13:03

Davide_74's gravatar image

Davide_74
617255974

modificato 23 Dic '14, 13:18

enzotib's gravatar image

enzotib ♦♦
14.0k112186


Non c'è nessuna differenza formale, dato che in Linux, e in Unix in generale, le estensioni non hanno alcun significato.

Quindi se vuoi sostituire in tutti i file della directory /percorso è sufficiente fare

sed -i "s/parola_da_sostituire/parola_d_applicare/g" /percorso/*

oppure, se vuoi farlo solo in alcuni file, puoi fare

sed -i "s/parola_da_sostituire/parola_d_applicare/g" /percorso/file1 /percorso/file2 /percorso/file3

che, grazie alla potenza di bash, può essere abbreviato in

sed -i "s/parola_da_sostituire/parola_d_applicare/g" /percorso/{file1,file2,file3}
coll. permanente

ha risposto 23 Dic '14, 13:21

enzotib's gravatar image

enzotib ♦♦
14.0k112186

modificato 23 Dic '14, 13:25

intanto Grazie per la pronta risposta e non solo :)

ho provato ma non funziona,forse sono file particolari però se metto il nome del singolo file funziona.

file particolari perchè, se entro da utente normale e faccio tasto destro proprietà mi dice "Binario (application/octet-stream)" se invece entro come utente root mi dice "Documento in testo semplice (text/plain)"

di nuovo Grazie

(23 Dic '14, 13:41) Davide_74 Davide_74's gravatar image

@Davide_74: i file di quale utente sono? ls -l cosa mostra?

(23 Dic '14, 14:47) enzotib ♦♦ enzotib's gravatar image

chiedo scusa,funziona cioè il comando da te postato prima c era l estensione .txt infatti mi chiedevo come mai la lasciata se in teoria non serve, ma non ho provato senza a dire il vero, poi dopo rileggendo ho visto che il .txt è sparito :) riprovato e funziona.

ma cmq non ho risolto me ne sono accorto dopo dando il comando.

in pratica servirebbe un altra istruzione cioè un altro comando ma,mi fermo perchè non centra nulla con il titolo cioè il titolo dovrebbe essere "controllare l esistenza di una stringa in più file,se non c'è inserirla"

Saluti

(23 Dic '14, 15:26) Davide_74 Davide_74's gravatar image

@Davide_74: effettivamente nella prima versione della risposta avevo fatto copia e incolla dalla tua domanda dimenticandomi di sostituire *.txt con solo *

(23 Dic '14, 16:13) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×93

domanda posta: 23 Dic '14, 13:03

domanda visualizzata: 759 volte

ultimo aggiornamento: 23 Dic '14, 16:13

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.