• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bash, Perl, 'trans' polecenie do tłumaczenia tekstu w terminalu.

Object Storage Arubacloud
+1 głos
355 wizyt
pytanie zadane 5 września 2021 w Systemy operacyjne, programy przez thesolitaryofchoice Początkujący (490 p.)

Mam następujący problem: dysponuje na swojej maszynie Linux Manjaro 64-bit programem, który jak później sprawdziłem jest skryptem w Perlu. Nazywa się trans i służy do tłumaczenia tekstu przy użyciu konsoli. 

trans en:pl "accessing"                                       
accessing

dostęp

Tłumaczenia accessing
[ English -> Polski ]

accessing
    dostęp, dostępu

To jest typowe działanie tego programu. Chciałem zgodnie z zasadą, że warto zapisywać gdzieś efekty pracy na komputerze. Przekierować output do jakiegoś pliku. Wykorzystałem do tego celu następującą komendę w konsoli:  trans en:pl "word" >> AnyFile.txt |  trans en:pl "word". Aby dopisać do pliku i wyświetlić rezultat pracy programu na konsoli. Niestety w pliku dzieją się dziwne rzeczy. Tzn. gdy użyję polecenia cat, by wyrzucić na ekran zawartość pliku wszystko wygląda ładnie. Natomiast, gdy chcę podejrzeć plik. To, np. przy tłumaczeniu avoid accesing mam:

avoid accessing

[1munikaj dostępu [22m

Tłumaczenia [4mavoid accessing [24m
[ [4mEnglish [24m -> [1mPolski [22m ]

[4mavoid accessing [24m
    [1munikaj dostępu [22m, [1mDostęp unikać [22m

Takie bohomazy. Próbowałem szukać rozwiązania na stronie https://github.com/soimort/translate-shell . Niestety oni proponują tylko zastosowanie do programu -b przy przekierowaniu echo "avoid accessing" | trans -b -o output.txt. A w ten sposób uzyskam o  wiele mniej niż chcę informacji w pliku do którego chcę zapisywać. Próbowałem rozwiązać problem przy pomocy skryptu w Pythonie. Ale poległem gdy okazało się, że powinienem przy os.system('/usr/bin/trans') użyć właśnie tej absolutnej ścieżki do programu i nie wiem, jak rozwiązać ten problem uruchomienia tego skryptu wraz z argumentem, którym ma być tłumaczony tekst. Pomyślałem, więc że wystarczyłoby przy przekierowaniu >> przekazać niesformatowany tekst. Niestety nie znalazłem w Internecie informacji jak to zrobić. Z góry dziękuję za przeczytanie postu i za wszelką pomoc.

Mateusz

komentarz 5 września 2021 przez Oscar Nałogowiec (29,290 p.)

Czy:

trans en:pl "word" >> AnyFile.txt |  trans en:pl "word"

to jest jedna instrukcja? Trochę dziwne - wyniki kierujesz do pliku i dajesz potokiem do drugiego programu.

Jeśli chodzi o te robaczki to są kody sterujące ANSI do terminala. 

komentarz 5 września 2021 przez thesolitaryofchoice Początkujący (490 p.)
Wiem to  faktycznie może być dziwne. Ja potoków za dobrze nie rozumiem. Być może to wina tego, że od początku idę na łatwiznę i korzystam z najprostszych dla mnie dystrybucji Linuxa (Manjaro, Ubuntu, Kubuntu, Fedora, Mint). Więc po prostu większość tego, co chcę zrobić mam w postaci narzędzi graficznych i może nie było okazji się z Basha podszkolić.

2 odpowiedzi

+1 głos
odpowiedź 8 września 2021 przez miro Pasjonat (23,870 p.)
wybrane 10 września 2021 przez thesolitaryofchoice
 
Najlepsza
Dziwnie, że te znaki zapisują się do pliku. Ja nie mam problemu z tym programem. Z jakiego terminala korzystasz? Spróbuj wyłączyć znaki ansi

trans --no-ansi en:pl "accessing"
komentarz 10 września 2021 przez thesolitaryofchoice Początkujący (490 p.)
Sorki, że tak późno faktycznie Twoje rozwiązanie jest najlepsze, działa bez zarzutu. Przy przekierowaniu do pliku dopisuje bez kodów sterujących.
+2 głosów
odpowiedź 5 września 2021 przez overcq Pasjonat (21,650 p.)

trans en:pl "word" | sed -e tutaj_wyrażenie_regularne >> AnyFile.txt

How to re­mo­ve ^[, and all of the es­ca­pe se­qu­en­ces in a file using li­nux shell scri­p­ting

komentarz 5 września 2021 przez thesolitaryofchoice Początkujący (490 p.)
trans en:pl "word" | sed -r 's/\x1b\[[0-9;]*m?//g' >> AnyFile.txt 

Super dzięki u mnie działa to.

Podobne pytania

0 głosów
0 odpowiedzi 222 wizyt
0 głosów
0 odpowiedzi 85 wizyt
pytanie zadane 4 marca 2020 w Inne języki przez edwardkraweznik Dyskutant (9,930 p.)
+1 głos
1 odpowiedź 182 wizyt
pytanie zadane 10 lipca 2015 w Inne języki przez niezalogowany

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...