przetworzenie tekstu na JEDNĄ kolumnę

Nie wiesz, gdzie umieścić swój post? Pisz tutaj!
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Nie potrafię albo nie umiem zrozumieć...
Mam już 80 lat (osiemdziesiąt!) i lubię bawić się takimi sprawami.

Od paru dni się męczę nad sposobem zapisania w jednej kolumnie wyrazów,
tak aby każdy z nich zaczynał się od nowego wiersza...


Na przykład:
===

ALI
ALK
ALO
ALP
ALT
AMF
ANA
ANI
ANO ANS ANT ARA ARĄ ARB ARĘ ARF ARK ARO ARS ARY ASA ASY ATA ATU ATY AUA AUĆ AUŁ AUR AUT AUU

BAB BAĆ BAD BAI BAJ BAK BAL BAŁ BAM BAN BAŃ BAR BAS BAŚ BAT BAW BAZ BAŹ BĄK BEE BEG BEJ BEK BEL BER BET BEZ BEŻ BĘC BIB BIĆ BID BIG BIJ BIL BIŁ BIM BIO BIP BIS BIT BIZ BLA BLE BOA BOB BOĆ BOD BOI BOJ BOK BOL BOM BON BOR BOT BOY BOŹ BÓB BÓG BÓJ BÓL BÓR BRR BRU BRY BUC BUD BUF BUG BUK BUL BUŁ BUM BUR BUS BUT BUU BUZ BUŹ BYĆ BYK BYŁ BYM BYŚ BYT BZU BZY BZZ

CAB CAL CAP CAR CEK CEL CEŁ CEN CEŃ CEP CER CES CEW CEZ CHA CHE CHI CHU CIE CIĘ CII CIP CIS CIŹ CIŻ CLĄ CLE CLĘ CLI CŁA CŁO CŁU CNA CNĄ CNE CNI CNY COB COD COL COŚ CÓR CÓŻ CUĆ CUD CUG CUM CUP CYC CYG CYK CYM CYN CYT CZE CZI CZY

Z góry dziękuję
dziadekMarian
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jermor »

Jeżeli chcesz to zrobić we Writerze, to:
  • Zaznacz potrzebny fragment
  • Wywołaj polecenie "Znajdź i zamień" (CTRL+H)
  • W polu "Znajdź" wpisz spację
  • W polu "Zamień:" wpisz \n
  • Zaznacz opcję "Tylko bieżące zaznaczenie"
  • Zaznacz opcję "Wyrażenia regularne"
  • Wykonaj "Zmień wszystkie"
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jan_J »

W Linuksie (widzę „Mint” w podpisie) istnieją narzedzia systemowe, które pozwalają takie rzeczy robić bardzo efektywnie, ale pod warunkiem że dane znajdują się w pliku tekstowym. Mówiąc w uproszczeniu, nie .odt ani .docx, tylko .txt. Rozszerzenie nie jest ważne; ważny jest format zapisu.

Na przykład. Jeśli mamy plik slowa1.txt o zawartości

Kod: Zaznacz cały

siała baba mak
nie wiedziała jak
to polecenie

Kod: Zaznacz cały

cat slowa1.txt | tr " " "\n" > slowa2.txt
dostępne w konsoli linuksa (Maca zresztą też) zbuduje plik slowa2.txt, w którym wszystkie spacje (" ") w zawartości pierwszego pliku zostaną zastąpione Enterami ("\n"). Czyl dostaniemy plik o zawartości

Kod: Zaznacz cały

siała
baba
mak
nie
wiedziała
jak
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Dzięki...

Udało mi się uporządkować alfabetycznie w edytorze "gedit"
(też mi się coś czasami udaje!)

... ale będę jeszcze miał kilka spraw do dopytania

Z wyrazami sympatii
dziadekMarian
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Przećwiczyłem także w konsoli...
działa...

Tylko jak tu spamiętać tyle komend?

Z wyrazami sympatii
dziadekMarian
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jan_J »

dziadekMarian pisze:Tylko jak tu spamiętać tyle komend?
Dlatego tekstowy tryb sterowania w szerokiej skali społecznej przegrał z graficznym...
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Dziękuję za już i proszę o jeszcze...

Potrzebuję wybrać wyrazy, które zawierają w sobie literki " OŚ "

A czy istnieje sposób wyboru zestawu literek " OŚ "
istniejących wyłącznie na końcu wyrazu?

Na przykład z kolumny:
=================

RUSZCZEJMYŻ
GOŚĆ
KLUPA
KENAF
KETMIA
KOŚĆ
GAMB
GAMBO
ORĘDUJŻE
OŚĆ
GHI
ZYMAZĄ
NIESYTA
ŚCIELI
ŚCIĘLI
GHEE
BAHT
GHAT
LILIJ
GRAJMYŻ
MYŚLAŁOŚ
EPOD
EPODA
KOMŻ
ŚNIC
CASSONE

Słowo wyjaśnienia:
te wyrazy pochodzą z oficjalnego słownika skrablistów
Lubię skrable.

Z wyrazami sympatii
dziadekMarian
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jermor »

Owszem istnieje taki sposób. Warto, abyś zapoznał się z wyrażeniami regularnymi. To one pozwalają na odnajdywanie wyrażeń wg. pewnego zadanego schematu szukania.
Pojawia się pytanie, czy chodzi ci o wybranie wyrazów, czyli np. przekopiowanie ich w inne miejsce, czy tylko wskazanie takich wyrazów.
W przedstawionym przez ciebie pytaniu należy wykorzystać we Writerze wyszukiwanie z zastosowaniem wyrażeń regularnych.
Słowa są zapisane w kolumnie. Po wywołaniu polecenia "Znajdź i zamień" (CTRL+H)
W polu "Znajdź" wpisz [:alpha:]*oś\b ([:alpha:] oznacza dowolną literę, gwiazdka oznacza, że litery może nie być lub może wystąpić dowolną ilość razy, następnie muszą pojawić się litery "oś", zapis "\b" oznacza, że muszą to być ostatnie litery wyrazu).
Pole "Zamień:" nie ma znaczenia.
Zaznacz opcję "Wyrażenia regularne".
Wykonaj "Znajdź wszystkie" albo "Znajdź następny/poprzedni"
Zapis w polu "Znajdź" wyznacza schemat wyszukiwania wyrazów, które zakończone są literami "oś".
"Znajdź wszystkie" zaznaczy wszystkie dopasowane do schematu słowa. Można wówczas wybrać polecenie "Kopiuj" (CTRL+C), a następnie w wybranym miejscu "Wklej" (CTRL+V), co sprawi, że zaznaczone słowa zostaną przekopiowane do nowego miejsca.
"Znajdź następny/poprzedni" pozwala przeskakiwać w tekście do kolejnego/poprzedniego wystąpienia wyrazu pasującego do poszukiwanego schematu.
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Jest!
Zaznacza mi wszystkie zestawy literowe "OŚ"
jednak dalej chyba...

Coś robię nie tak...
Po prostu nie wybiera mi wyrazów (z "OŚ"), które chcę ustawić w jednej kolumnie a za to...
wybierane są właśnie TYLKO te dwie litery...

Chyba coś nie zrozumiałem...
Oto w załącznikach


Z wyrazami sympatii
dziadekMarian
Załączniki
SKRABLE1B.jpg
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jermor »

Tak jak napasałem, cały ciąg powinien wyglądać tak:

Kod: Zaznacz cały

[:alpha:]*oś\b
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
dziadekMarian
Posty: 6
Rejestracja: pt mar 04, 2022 1:32 pm

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: dziadekMarian »

Prawda, mój błąd (niedopatrzenie), ale...
wynik jest taki:

COŚGŁOŚKŁOŚKOŚKTOŚŁOŚMYŚLAŁOŚNOŚOKOŚOROŚOŚPROŚROŚSKOŚUKOŚUNOŚWNOŚZNOŚZROŚ

a potrzebowałbym oddzielne wyrazy w kolumnie


Z góry dziękuję za pomoc
dziadekMarian
LibreOffice 6.0.7.3 na Linux Mint 19.3 Tricia
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: przetworzenie tekstu na JEDNĄ kolumnę

Post autor: Jermor »

Jest tak dlatego, że wszystkie znalezione słowa są łączone w jeden ciąg, znaki nowego wiersza nie są włączane do znalezionego ciągu, więc powstaje zlepek wszystkich wyrazów.

Należy zaznaczyć ten wytworzony ciąg, wywołać ponownie "Znajdź i zamień" i przy nadal zaznaczonej opcji dotyczącej wyrażeń regularnych oraz "Tylko bieżące zaznaczenie" do pola "Znajdź" wpisać , natomiast do pola "Zamień" wpisać ciąg &\n.
Jeśli skopiowany ciąg został umieszczony w nowym dokumencie i stanowi jego jedyną zawartość, to można wykonać tę operację bez zaznaczania tego ciągu. Operacja "Znajdź i zamień" zachodzi wówczas na całym dokumencie.
Na co należy zwrócić uwagę? W tej zamianie każde znalezione wystąpienie liter jest zamieniane na te same litery (w polu "Zamień" symbolizuje to znak &) z dołączonym znakiem nowego wiersza (w polu "Zamień" symbolizują to znaki \n). Nie ma tutaj rozróżnienia czy te litery są ostatnimi w wyrazie, więc każde zostanie zastąpione przejściem do nowego wiersza. Może to zniekształcić oczekiwany rezultat.
W przypadku może to być przypadek rzadki, ale np. przy wyszukiwaniu wyrazów kończących się na ta w przypadku wyrazów STATYSTA i KANTATA pojawi się ciąg: STATYSTAKANTATA a wówczas podana powyżej metoda zwróci taki wynik:
STA
TYSTA
KANTA
TA
Dlatego warto podejść do zadania nieco inaczej i wykonać je w kilku krokach. W pierwszym zamienić każdy wyraz kończący się wymaganym ciągiem znaków na taki sam wyraz uzupełniony o znak normalnie niewystępujący w słowach np. # albo !.
Dla wspomnianego przykładu z ta byłoby to:
"Znajdź:" [:alpha:]*ta\b
"Zamień:" &#
W wyniku tego w źródle powstałyby słowa STATYSTA# i KANTATA#
Teraz można zaznaczyć tylko słowa kończące się znakiem #:
"Znajdź:" [:alpha:]*#\b
Wybrać "Znajdź wszystkie", skopiować je i wkleić do nowego miejsca.
W tym nowym miejscu pojawi się teraz taki ciąg: STATYSTA#KANTATA# wystarczy w nim zamienić każdy # na znak nowego wiersza
"Znajdź:" #
"Zamień:" \n
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ