Come aggiungere un carattere ogni n caratteri
Come aggiungere un carattere ogni n caratteri in un testo molto lungo.
A cura di
Totò Fiandaca
| issue
#139
| guida/e
Andrea Borruso
Introduzione
Ho un CSV con un campo popolato da testo abbastanza lungo e ho la necessità di aggiungere, per ogni riga, un carattere ogni N caratteri, l’ideale sarebbe introdurre il carattere in corrispondenza del primo spazio utile dopo gli N caratteri: una sosrta di word wrap.
esempio file di input text.txt
| fid | DESCRIZIONE |
|---|---|
| 1 | "Calcari mal stratificati o massicci (rudstone e floatstone),grossolanamente bioclastici. Subordinatamente contengono orizzonti di calcari micritici a tessitura mudstone e wackestone e calcari oolitici; anche in questa litofacies sono frequenti i veli irregolari calcareo-marnosi di colore giallastro o verdastro.” |
| 2 | "Calcari mal stratificati o massicci (rudstone e floatstone),grossolanamente bioclastici. Subordinatamente contengono orizzonti di calcari micritici a tessitura mudstone e wackestone e calcari oolitici; anche in questa litofacies sono frequenti i veli irregolari calcareo-marnosi di colore giallastro o verdastro.” |
| 3 | "Calcari mal stratificati o massicci (rudstone e floatstone),grossolanamente bioclastici. Subordinatamente contengono orizzonti di calcari micritici a tessitura mudstone e wackestone e calcari oolitici; anche in questa litofacies sono frequenti i veli irregolari calcareo-marnosi di colore giallastro o verdastro.” |
script
#!/bin/bash
set -x
mlr --csv cut -f DESCRIZIONE test.txt | fold -sw 50 | mlr --csv cat -n | perl -pe 's/\r\n/~/g;s/\n/*/g;s/~/\r\n/g' >testww.txt
dove:
mlr --csv cut -f DESCRIZIONE test.txtestrae la colonnaDESCRIZIONE;fold -sw 50fa il wordwrap per ogni 50 caratteri;mlr --csv cat -nstampa a video e aggiunge un contatore simile alfiddel CSV di input;perl -pe 's/\r\n/~/g;s/\n/*/g;s/~/\r\n/g'cerca glia capo(\n) e sostituisce il carattere speciale*>testww.txtsalva tutto nel file.
file di output textww.txt
| n | DESCRIZIONE |
|---|---|
| 1 | "Calcari mal stratificati o massicci (rudstone e *floatstone), grossolanamente bioclastici. *Subordinatamente contengono orizzonti di calcari *micritici a tessitura mudstone e wackestone e *calcari oolitici; anche in questa litofacies sono *frequenti i veli irregolari calcareo-marnosi di *colore giallastro o verdastro.” |
| 2 | "Calcari mal stratificati o massicci (rudstone e *floatstone), grossolanamente bioclastici. *Subordinatamente contengono orizzonti di calcari *micritici a tessitura mudstone e wackestone e *calcari oolitici; anche in questa litofacies sono *frequenti i veli irregolari calcareo-marnosi di *colore giallastro o verdastro.” |
| 3 | "Calcari mal stratificati o massicci (rudstone e *floatstone), grossolanamente bioclastici. *Subordinatamente contengono orizzonti di calcari *micritici a tessitura mudstone e wackestone e *calcari oolitici; anche in questa litofacies sono *frequenti i veli irregolari calcareo-marnosi di *colore giallastro o verdastro.” |
Riferimenti
Chi ha cucinato questa ricetta o ne ha tratto ispirazione
Ultima modifica 19/07/2020: close #50 (a1365d8)