====== Praca z tekstem w terminalu ====== Np. gdy łączymy się z odległym kompem i pracujemy przez PuTTy. Różne użyteczne knyfy [[http://unix.stackexchange.com/questions/tagged/text-processing|tu]]. ===== Formatowanie pliku ===== Jeżeli nie jest to programowanie, tylko pisanie tekstu (co się przecież zdarza), najprostszym edytorem pozostaje **nano**. Dobrze go wtedy trochę poustawiać w ''/etc/nanorc'' lub ''~/.nanorc''. O czym niżej. ==== Zawijanie wierszy ==== We wszystkich edytorach terminalowych można zrobić ''text wrap'' lub podobnie, czy to wywołując jako parametr przy starcie, czy w ustawieniach ''rc''. Ale w przypadku tekstu bieżącego nie załatwia to problemu, gdyż kursor będzie skakał pomiędzy wierszami rzeczywistymi, nie zaś ekranowymi. Zatem jeżeli pojawi się długi akapit (który w wypadku plików tekstowych jest po prostu wierszem tekstu rozdzielonym wierszem pustym), będzie trudno go edytować. Należy wtedy "zawinąć" wiersz w pliku: ''fold -w 80 -s text.txt'' * ''w'' ustala szerokość wiersza w liczbie znaków (standard ekranowy to 80) * ''s'' każe łamać linię na spacjach, nie byle gdzie Tekst zostanie **na stałe** zawinięty! Więcej podpowiedzi [[http://unix.stackexchange.com/questions/25173/how-can-i-wrap-text-at-a-certain-column-size|tu]] ==== Odwijanie wierszy ==== Zapytałem się na stackoverflow: http://stackoverflow.com/questions/32985844/unfolding-text-file-on-linux-preserve-double-newlines ale skasowali, bo uznali, że jest niskiej jakości lub coś. Ale znalazłem takie: `cat file.txt | awk '{printf "%s ",$0} /^$/{print ""} END{print ""}' > unfolded_file.txt` albo z sed: `cat file.txt | sed ':a;N;$!{/\n$/!ba}; s/[[:blank:]]*\n[[:blank:]]*/ /g' > unfolded_file.txt` Ale obie powyższe metody po prostu kasują pojedyncze oznaczenie nowej linii (czyli zostawiają jedno z dwóch oznaczeń) - i zamiast jednoliniowego odstępu między akapitami mamy tylko bezliniowy odstęp - a to już kiepsko. Trzeba znaleźć lepsze rozwiązanie.