Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-05-2010, 23:37   #1
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Help nel sostituire una parola con un'altra, dentro un file

ciao a tutti

ho un'esigenza che non riesco a soddisfare, nonostante abbia tentato con sed, invano...

io ho diversi file su un hard disk, sparsi in diverse directory, con estensione *avs, ma i nomi dei file sono diversi, cio' che li accomuna è l'estensione.

(avs è un file di testo, puo' anche essere .txt, ma è avs perchè è uno script di avysinth, che serve per l'encoding video.)


il mio problema è poter in un colpo solo, modificare dentro ogni file avs, la parola AVCSource con DirectShowSource, e la parola .dga con .ts


solitamente un file si presenta cosi':

LoadPlugin("C:\Program Files\MeGUI\tools\dgavcindex\DGAVCDecode.dll")
AVCSource("F:\Documenti\Script\test.dga")
#deinterlace
#crop
#resize
#denoise
Lanczos4Resize(1280,720) # Lanczos4 (Sharp)

ripeto, ho provato con sed ma senza successo, non riesco a modificare il file avs direttamente e neppure riesco a modificare nello stesso tempo due parole, sempre prima avcsource e poi .dga

attendo qualche aiuto, penso sia molto semplice per voi.

grazie ancora
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 00:04   #2
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
-Per trovare tutti i file con quella estensione potresti usare find
-L'output sono tante righe quante i file trovati, magari lo redirezioni su un file temporaneo...
-Ogni riga è una path completa, quindi puoi creare un ciclo for su questo file che per ogni riga esegue cat <riga> | sed 's/.... > sostituzioni che devi fare nel file>

Credo vada bene per quello che vuoi fare. Fai un pò di prove, ma dovrebbe essere ok.

ora non ho tempo ma dovrebbe venire una cosa del tipo,


Codice:
find / -name *.avs > tempfile

for line in $tempfile
do
     cat line | sed 's/..... ecc...
done
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 00:33   #3
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
-Per trovare tutti i file con quella estensione potresti usare find
-L'output sono tante righe quante i file trovati, magari lo redirezioni su un file temporaneo...
-Ogni riga è una path completa, quindi puoi creare un ciclo for su questo file che per ogni riga esegue cat <riga> | sed 's/.... > sostituzioni che devi fare nel file>

Credo vada bene per quello che vuoi fare. Fai un pò di prove, ma dovrebbe essere ok.

ora non ho tempo ma dovrebbe venire una cosa del tipo,


Codice:
find / -name *.avs > tempfile

for line in $tempfile
do
     cat line | sed 's/..... ecc...
done
ho provato ma non ci riesco, magari sbaglio io.

Codice:
find / -name *.avs > tempfile

for line in $tempfile
do
     cat 2 | sed 's/ AVCSource > directshowsource >
done
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 09:08   #4
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
La parte con find è corretta.

E' un pò più complicato dopo, ho fatto io però ti consiglio di studiarti un pò di scripting bash, per queste cose fa risparmiare ore e ore di lavoro

lo script:

Codice:
#!/bin/sh -
find / -name *.avs > tempfile

exec 3<&0
exec < tempfile
while true
do
   read direct || break
   cat $direct | sed 's/AVCSource/DirectShowSource/g' | sed 's/.dga/.ts/g' > `eval echo $direct`
   cat $direct
   echo ""
done
exec 0<&3 3<&-
echo END
rm tempfile
il secondo cat nel ciclo stampa il contenuto del file dopo la sostituzioni, così verifiche che sia tutto ok.

Dovrebbe andare, non l'ho provato, magari fai una prova prima restringendo la ricerca di find a una cartella...
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 10:13   #5
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Notepad++ ha gli strumenti che ti servono. Fa ricerca e sostituzione nei file, anche con espressioni regolari.
Tanto per non cercare qualcosa di troppo esotico
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 12:56   #6
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
La parte con find è corretta.

E' un pò più complicato dopo, ho fatto io però ti consiglio di studiarti un pò di scripting bash, per queste cose fa risparmiare ore e ore di lavoro

lo script:

Codice:
#!/bin/sh -
find / -name *.avs > tempfile

exec 3<&0
exec < tempfile
while true
do
   read direct || break
   cat $direct | sed 's/AVCSource/DirectShowSource/g' | sed 's/.dga/.ts/g' > `eval echo $direct`
   cat $direct
   echo ""
done
exec 0<&3 3<&-
echo END
rm tempfile
il secondo cat nel ciclo stampa il contenuto del file dopo la sostituzioni, così verifiche che sia tutto ok.

Dovrebbe andare, non l'ho provato, magari fai una prova prima restringendo la ricerca di find a una cartella...
nulla da fare, non mi restituisce lo stesso file modificato, e il file temp è vuoto
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 13:26   #7
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Notepad++ ha gli strumenti che ti servono. Fa ricerca e sostituzione nei file, anche con espressioni regolari.
Tanto per non cercare qualcosa di troppo esotico
scusa ma in che modo notepad++ puo' essere d'aiuto?

perchè non vedo innanzitutto alcuna possibilita' nel poter cercare dei file con una determinata estensione all'interno di una unita'

edit: se uso il find in cartelle, il programma va in crash, eheh e non riesco tra l'altro a mettere due parole da sostituire. sono un po' noob non voletemi male

edit2: ho fatto un po di prove, pero' non capisco bene come poter modificare piu' espressioni all'interno dello stesso file, senza quindi dover operare prima per sostituire .dga in .ts e poi avcsource in directshowsource

sarebbe bello se si potesse creare un .bat che faccia in automatico con un click

Ultima modifica di Robertus : 12-05-2010 alle 13:48.
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 13:43   #8
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da Robertus Guarda i messaggi
nulla da fare, non mi restituisce lo stesso file modificato, e il file temp è vuoto
se tempfile è vuoto significa che non ha trovato file .avs

Hai fatto un prova?

tipo così: (fai un file prova.txt con all'interno la stringa "testo" e inseriscilo nella dir root)

Codice:
#!/bin/sh -
find /root -name *.txt > tempfile

exec 3<&0
exec < tempfile
while true
do
   read direct || break
   cat $direct | sed 's/testo/replaced/g' > `eval echo $direct`
   cat $direct
   echo ""
done
exec 0<&3 3<&-
echo END
rm tempfile
lo script è corretto l'ho provato a me funziona.
Ti da degli errori?
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 13:54   #9
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da Robertus Guarda i messaggi
perchè non vedo innanzitutto alcuna possibilita' nel poter cercare dei file con una determinata estensione all'interno di una unita'
Ma come no?!?
L'hai provato, almeno?
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 14:40   #10
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Ma come no?!?
L'hai provato, almeno?
si provato, ho modificato poco sopra con edit1 e 2, credo ti siano sfuggiti :P


Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
se tempfile è vuoto significa che non ha trovato file .avs

Hai fatto un prova?

tipo così: (fai un file prova.txt con all'interno la stringa "testo" e inseriscilo nella dir root)

Codice:
#!/bin/sh -
find /root -name *.txt > tempfile

exec 3<&0
exec < tempfile
while true
do
   read direct || break
   cat $direct | sed 's/testo/replaced/g' > `eval echo $direct`
   cat $direct
   echo ""
done
exec 0<&3 3<&-
echo END
rm tempfile
lo script è corretto l'ho provato a me funziona.
Ti da degli errori?
non mi riconosce il comando find ( sono su win7 )
"formato del parametro non corretto"
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 14:48   #11
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
...

ero molto convinto che eri su linux.. ecco perchè non va.......
quello script è per linux.
(Potevo anche capirlo però C:\Program Files\MeGUI\tools.......) e va bè ieri sera era tardi....

Con windows non lavoro quasi mai a riga di comando.... purtroppo ora non ho tempo di andarmi a vedere come sarebbe...

cmq il consiglio di MaxArt è buono. Usa NotePad++.
Devi scegliere sostituisci nei file scegliendo la cartella e filtri. Non è complicato.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 15:12   #12
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
...

ero molto convinto che eri su linux.. ecco perchè non va.......
quello script è per linux.
(Potevo anche capirlo però C:\Program Files\MeGUI\tools.......) e va bè ieri sera era tardi....

Con windows non lavoro quasi mai a riga di comando.... purtroppo ora non ho tempo di andarmi a vedere come sarebbe...

cmq il consiglio di MaxArt è buono. Usa NotePad++.
Devi scegliere sostituisci nei file scegliendo la cartella e filtri. Non è complicato.
va bene grazie lo stesso, mi affido alla mente di max allora :P
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 16:41   #13
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da Robertus Guarda i messaggi
si provato, ho modificato poco sopra con edit1 e 2, credo ti siano sfuggiti :P
Sì, mi erano sfuggiti

Comunque devi sostituire una parola per volta. Con le espressioni regolari puoi anche trovarne due per volta ma per la sostituzione non si può.
Vai su Cerca/Trova nei file (oppure Ctrl-Shift-F), in Trova ci metti AVCSource, in Sostituisci con ci metti DirectShowSource, in Filtri ci metti *.avs.
Poi rifai lo stesso con .dga, .ts e di nuovo *.avs

Se ti va in crash non so che dirti
Quanti sono questi file avs?
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2010, 19:30   #14
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Sì, mi erano sfuggiti

Comunque devi sostituire una parola per volta. Con le espressioni regolari puoi anche trovarne due per volta ma per la sostituzione non si può.
Vai su Cerca/Trova nei file (oppure Ctrl-Shift-F), in Trova ci metti AVCSource, in Sostituisci con ci metti DirectShowSource, in Filtri ci metti *.avs.
Poi rifai lo stesso con .dga, .ts e di nuovo *.avs

Se ti va in crash non so che dirti
Quanti sono questi file avs?
una 40ina.

andava in crash se prima facevo visualizza tutti, se faccio direttamente sostituisci, non va in crash e fa quello che deve.

pero' mi chiedo se c'è un modo per poter fare un .bat cosi che con un click ogni volta che ho bisogno di fare questa operazione, non devo aprire notepad++ ecc ecc
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 13-05-2010, 00:02   #15
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da Robertus Guarda i messaggi
pero' mi chiedo se c'è un modo per poter fare un .bat cosi che con un click ogni volta che ho bisogno di fare questa operazione, non devo aprire notepad++ ecc ecc
Uhm... richiesta lecita.
Notepad++ è un editor piuttosto sofisticato, può eseguire le macro e se non erro può farlo anche da riga di comando. Prova a dare un'occhiata alla documentazione...
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2010, 21:07   #16
Robertus
Senior Member
 
L'Avatar di Robertus
 
Iscritto dal: Jun 2007
Messaggi: 447
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Uhm... richiesta lecita.
Notepad++ è un editor piuttosto sofisticato, può eseguire le macro e se non erro può farlo anche da riga di comando. Prova a dare un'occhiata alla documentazione...
ho letto la documentazione e si puo' fare ma non ci sono scritti i comandi che si possono eseguire
Robertus è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2010, 22:47   #17
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Allora taglia la testa al toro e ritorna alla tua idea iniziale dello script: PowerShell.
Ma qui non posso aiutarti, sorry
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2010, 10:12   #18
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
nn capisco...ma hai installato il sed per windows?

cosa scrivi esattamente?

hai provato solo su un file?

per cercare i files da dos puoi andare benissimo in c: e scrivere

dir /B /S *.avs

quindi fai un FOR:


for /F %a in ('dir /B /S *.avs') do

e poi continui col sed
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2010, 12:56   #19
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
io ho provato scaricando il sed for windows e questo funziona.

Codice:
cd\
for /F "delims==" %%a in ('dir /B /S *.avs') do (
"C:\Program Files\GnuWin32\bin\sed.exe" -i s/AVCSource/DirectShowSource/g "%%a"
"C:\Program Files\GnuWin32\bin\sed.exe" -i s/[.]dga/.ts/g "%%a"
)
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
I produttori non faranno sconti sulle me...
Ubisoft potrebbe cedere pezzi se il pian...
Qualcomm potrebbe utilizzare una tecnolo...
Starfield per Nintendo Switch 2 potrebbe...
Un MacBook Pro a -300€, i MacBook Air M4...
Amazon abbassa i prezzi sugli iPhone: sc...
Amazon, ancora sconti sugli smartphone A...
iPhone Air 2 'riciclerà' alcuni c...
Offerta Amazon da non perdere: lo speake...
Nioh 3 debutta alla grande su Steam: pri...
Al centro della Via Lattea ci potrebbe e...
Elon Musk ora guarda alla Luna: SpaceX p...
La Cina ha lanciato nuovamente lo spazio...
Blue Origin potrebbe realizzare il lande...
Artemis II: il prossimo Wet Dress Rehear...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v