Mam dokument tekstowy, który zawiera mnóstwo tekstu, a po każdej literze jest dodawane dodatkowe miejsce!
Przykład:
T h e b o o k a l s o h a s a n a n a l y t i c a l p u r p o s e w h i c h i s m o r e i m p o r t a n t…
Naocznie:
T␣h␣e␣␣b␣o␣o␣k␣␣a␣l␣s␣o␣␣h␣a␣s␣␣a␣n␣␣a␣n␣a␣l␣y␣t␣i ␣c␣a␣l␣␣p␣u␣r␣p␣o␣s␣e␣␣w␣h␣i␣c␣h␣␣i␣s␣␣m␣o␣r␣e␣␣i␣ m␣p␣o␣r␣t␣a␣n␣t…
Należy pamiętać, że istnieje dodatkowa przestrzeń po każdym liście, więc są dwie przestrzenie między kolejnymi słowami.
Czy istnieje sposób, aby uzyskać awk
lub sed
usunąć dodatkowe spacje? (Niestety ten dokument tekstowy jest bardzo obszerny i przejście go ręcznie zajęłoby bardzo dużo czasu).
Rozumiem, że jest to prawdopodobnie o wiele bardziej skomplikowany problem do rozwiązania za pomocą prostego skryptu bash, ponieważ musi istnieć także pewien rodzaj rozpoznawania tekstu.
Jak podejść do tego problemu?
echo 't h i s i s a n e x a m p l e' | sed 's/ //g'
echo 'T h i s ; i s .a n 9 8 e x a m p l e' | perl -pe 's/[a-z]\K (?=[a-z])//ig'