Cosa c'è di nuovo?
HWReload

Registrati e partecipa alle attività del forum

Modificare file .json

spider81man

Nuovo utente
Iscritto dal:
31 Maggio 2021
Messaggi
7
Buongiorno a tutti,
ho diversi file .json che sto aprendo con EmEditor. Con questo programma posso modificare la visualizzazione del file come se fosse un CSV e quindi mettere un separatore, in questo caso la virgola.
Ora volevo sapere se era possibile usare uno script che:
- mi apre il file;
- mi trova la parola d'interesse;
- me la sostituisce con un'altra da me richiesta.
Sapete aiutarmi in tal senso??
Grazie
 

GiuseppeLaMarca

Moderatore
Staff
Iscritto dal:
13 Marzo 2021
Messaggi
665
Ti dico cos'ha detto mio fratello (sviluppatore):
«col bash è molto sbrigativo. Deve usare il comando perl e immettere una regular expression per sostituire le occorrenze in un file»
Ma attendiamo una validissima alternativa, di maggiore compatibilità, che questa sera ci spiegherà @Tesla per usare NodeJS.
 

Tesla

Community Italiana
Iscritto dal:
12 Giugno 2021
Messaggi
69
Buongiorno a tutti,
ho diversi file .json che sto aprendo con EmEditor. Con questo programma posso modificare la visualizzazione del file come se fosse un CSV e quindi mettere un separatore, in questo caso la virgola.
Ora volevo sapere se era possibile usare uno script che:
- mi apre il file;
- mi trova la parola d'interesse;
- me la sostituisce con un'altra da me richiesta.
Sapete aiutarmi in tal senso??
Grazie
Ciao! È possibile usare un qualsiasi editor di testo (anche notepad.exe per farti capire) per modificare una parola per un'altra. Se però vuoi uno script automatizzato che cambi il contenuto del file e si chiuda senza aprire altre finestre ecc. posso consigliarti un veloce script fatto in Node:

Una volta fatto partire basta inserire in quest'ordine (cliccando invio dopo aver digitato uno per digitare l'altro): Nome del file, contenuto da rimpiazzare, contenuto da inserire. Non richiede l'utilizzo di npm poiché usa solo le librerie incluse.

JavaScript:
const fs = require("fs");
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let nome,query,repl;

rl.question('Nome del file ', (answer) => {
    nome = answer;
    rl.question('Testo da cercare ', (answer_) => {
        query = answer_;
        rl.question('Testo da inserire ', (answer__) => {
            repl = answer__;
            fs.readFile(nome, 'utf8', function (err,data) {
                if (err) {
                    return console.log(err);
                }
                fs.writeFile(nome, data.replaceAll(query, repl), function (err) {
                    if (err) return console.log(err);
                });
            });
            rl.close();
        });
    });
});
Post automatically merged:

Devo avvertire che non ho testato lo script su file di grandi dimensioni, benché dovrebbe reggere senza problemi. Inoltre consiglio di posizionare il file da modificare nella sua stessa cartella poiché così non ci saranno problemi con l'ubicazione (dannato Windows ed il suo sistema ostrogota). Non c'è da preoccuparsi riguardo il formato del file poiché json è parente di plain/text.
 
Top