View Full Version : Linux modificare file
texerasmo
09-04-2004, 11:55
Ciao a tutti ho un file che pesa 100 m
devo sostiuire una tringa dentro questo file è possibile farlon da riga di comando?
non voglio aprirlo con un editor altrimenti si impianta il pc
ilsensine
09-04-2004, 12:11
man dd ;)
ilsensine
09-04-2004, 12:15
(non scordare il parametro conv=notrunc di dd, altrimenti cancelli tutto il resto del file!)
texerasmo
09-04-2004, 12:19
dd ??? "trovaStringa" "SostiutisciStringa" prova.txt
non riesco a capire quele delle opzioni prendere ho provato con swab
ma non mi funziona.
Ho fatto dd -help ma non riesco a trovare una voce che soddisfa il mio caso.
Originariamente inviato da ilsensine
man dd ;)
come diavolo fai con dd? :wtf:
a me viene in mente:
sed -e 's/stingaDaSosituire/stringaCheSostituisce/g' nome_file >file_destinazione
ma tirare fuori sed per una cosetta del genere potrebbe essere sprecato :O
ilsensine
11-04-2004, 13:25
Originariamente inviato da kingv
come diavolo fai con dd? :wtf:
Avevo chissà come capito che doveva sostituire una stringa dentro un file binario, e questo si può fare facilmente con dd...
a me viene in mente:
sed -e 's/stingaDaSosituire/stringaCheSostituisce/g' nome_file >file_destinazione
ma tirare fuori sed per una cosetta del genere potrebbe essere sprecato :O
No sed è giusto, se il file è di testo.
texerasmo
09-07-2004, 13:45
sto usando il sed per levare una stringa ad un file
ma quando lancio il se ho il file completamente pulito :(
comando = new String[3];
comando[0] = "/bin/sh" ;
comando[1] = "-c" ;
//mi cotruisco la stringa di comando
comando[2] = "sed -e 's/<?xml version=\"1.0\"?>/ /g' "+file_xml_new+" > "+file_xml_new;
Runtime.getRuntime().exec(comando);
perche' lanci sh -c ?
non puoi lanciare sed direttamente?
se lo lanci da riga di comando funziona?
texerasmo
09-07-2004, 15:12
faccio così altrimenti la jsp non lancia il cmd
no anche da linea di comando non funge
cerca di far funzionare il sed da riga di comando.
quando funziona come ti aspetti, modifica il codice java e non usare quella redirect ma quando lanci exec() fai qualcosa del tipo:
Process proc = rt.exec("sed ecc.ecc.'");
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getOutputStream()));
e poi leggi i risultati dal buffered reader.
texerasmo
09-07-2004, 16:54
ho notato..
che se faccio così funziona come mai?
comando = new String[3];
comando[0] = "/bin/sh" ;
comando[1] = "-c" ;
//mi cotruisco la stringa di comando
comando[2] = "sed -e 's/<?xml version=\"1.0\"?>/ /g' "+file_xml_new+" > "+file_xml_new2;
Runtime.getRuntime().exec(comando);
Ovvero non vado a scrivere su lo stesso file ma su un file diverso
Originariamente inviato da texerasmo
Ovvero non vado a scrivere su lo stesso file ma su un file diverso
perche' non tenta di leggere e scrivere dallo stesso file, ho provato e anche a riga di comando c'e' lo stesso problema.
se invece glielo fai leggere tutto prima di scrivere funziona:
cat nome_file|sed -e ecc.ecc. > nome_file
texerasmo
09-07-2004, 17:21
ok
tnks come sempre per la collaborazione
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.