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 colonna- DESCRIZIONE;
- fold -sw 50fa il wordwrap per ogni 50 caratteri;
- mlr --csv cat -nstampa a video e aggiunge un contatore simile al- fiddel CSV di input;
- perl -pe 's/\r\n/~/g;s/\n/*/g;s/~/\r\n/g'cerca gli- a 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)