Classe di problemi risolvibili da editor di sed o stream

2

Ho trovato una domanda trasforma questo testo con sed [sed solo] e mi sono chiesto quale classe di problemi sia risolvibile da editor di stream o programmi / modelli computazionali con vincoli simili.

Per E.g Le espressioni regolari possono risolvere problemi che richiedono una quantità fissa / costante di memoria (può risolvere tutti i problemi che hanno un'automa di stato finito deterministico)

La mia domanda è quali sono i limiti / vincoli computazionali di sed in particolare e di qualsiasi editor di stream in generale e quali classi / classi di problemi possono essere risolti da esso? (dopo averlo mappato un insieme di caratteri alfabetici se necessario)

    
posta ffledgling 16.03.2013 - 22:57
fonte

2 risposte

1

Prima di tutto, direi che "can be done (or solvable)" != "best choice"

Vediamo alcuni esempi:

  • Hai menzionato regex. Regex può rilevare i numeri primi . Useresti espressioni regolari per questo?

  • l'elaborazione del testo con alcuni calcoli matematici, può essere eseguita anche da sed . tuttavia, se awk è disponibile, andresti con sed ?

  • anche qualcosa di simile, analizzando un testo con un determinato pattern, quando 3a partita, fai A, 6a partita, fai B, xth match do Y. questo può essere fatto anche da sed giocando con lo spazio di attesa. ma pensaci come è semplice se usi awk per risolverlo.

  • pensa di scrivere un normale ciclo for(i=1;i<100;i++) con sed

gnu sed supporta il passaggio della parte abbinata ai programmi esterni per eseguire ulteriori elaborazioni e ottenere risultati. (come system() or getline in awk) Quindi potresti immaginare che tipo di problemi sed puoi fare se il tuo sed viene salvato con bc, sed, nl, seq, join, cut, sort, paste, grep even cp, mv, rm, find... and awk

La scelta migliore per lo stesso problema potrebbe essere diversa per persone diverse. dì un problema, sed è la scelta migliore dal tuo punto di vista. Comunque non è bravo a sed, ma sa benissimo di awk, pensava che awk fosse la scelta migliore. Conosce bene il pitone ... e sono un esperto di MS-Excel ....

my 2cents.

    
risposta data 17.03.2013 - 01:16
fonte
0

Io uso sed principalmente in un ambiente * nix dove il problema da risolvere è un semplice problema di trasformazione dei dati. Ad esempio, aggiungendo o rimuovendo colonne da dati .csv o modificando una data esistente in un campo. Inoltre, sed è garantito dove scrivere un altro software scritto in Python, Perl, Clojure, awk o nella tua lingua preferita non supporta il sovraccarico della manutenzione di un altro modulo.

Non ho usato le funzionalità avanzate di sed, come i registri di swapping, e probabilmente non lo farò, perché andare oltre una semplice trasformazione dei dati dovrebbe garantire il sovraccarico di un programma più completo.

    
risposta data 17.03.2013 - 19:14
fonte

Leggi altre domande sui tag