Skip to main content

Pokaż znaki do druku pliku za pomocą ciągów

Jak naprawić drukarkę? Jak sprawdzić dlaczego drukarka nie działa? (Kwiecień 2025)

Jak naprawić drukarkę? Jak sprawdzić dlaczego drukarka nie działa? (Kwiecień 2025)
Anonim

Czy próbowałeś kiedyś otworzyć plik w edytorze, aby dowiedzieć się, że zawiera on nieczytelną zawartość binarną?

Polecenie "łańcuchy" w Linuksie umożliwia wyświetlanie znaków czytelnych dla człowieka w dowolnym pliku.

Głównym celem użycia polecenia "struny" jest ustalenie, jakiego rodzaju pliku szukasz, ale możesz również użyć go do wyodrębnienia tekstu. Na przykład, jeśli masz plik z autorskiego programu, który zapisuje pliki w dziwnym formacie binarnym, możesz użyć "ciągów", aby wyodrębnić tekst, który umieściłeś w pliku.

Przykładowe użycie polecenia Ciągi

Doskonałym sposobem na zademonstrowanie mocy polecenia string jest utworzenie dokumentu za pomocą programu LibreOffice Writer.

Po prostu otwórz program LibreOffice Writer i wprowadź tekst, a następnie zapisz go w standardowym formacie ODT.

Teraz otwórz okno terminala (naciśnij CTRL, ALT i T w tym samym czasie), a następnie użyj polecenia cat, aby wyświetlić plik w następujący sposób:

cat yourfilename.odt | więcej

(Zastąp plik nazwa_pliku.odt nazwą utworzonego pliku)

To, co zobaczysz, to cała ściana nieczytelnego tekstu.

Naciśnij klawisz spacji, aby przewinąć plik. Sporadycznie w całym pliku zobaczysz część wprowadzonego tekstu.

Polecenie strun może służyć do wyświetlania tylko tych części, które są czytelne dla człowieka.

W najprostszej postaci możesz uruchomić następujące polecenie:

ciągi nazwa_pliku.odt | więcej

Tak jak poprzednio, pojawi się ściana tekstu, ale tylko tekst, który można odczytać jako człowiek. Jeśli masz szczęście, będziesz mógł zobaczyć swój tekst.

To, co będzie można zobaczyć, jest kluczowe, jednak znajduje się w pierwszej linii:

mimetypeapplication / vnd.oasis.opendocument.text

Wiemy, że typ pliku to plik ODT programu LibreOffice Writer z 2 powodów:

  1. Stworzyliśmy plik
  2. Rozszerzenie to .ODT

Wyobraź sobie, że nie utworzyłeś pliku lub znalazłeś plik na odzyskanym dysku, a plik nie ma rozszerzenia.

Odzyskiwanie systemu Windows często odzyskiwałoby pliki o nazwach takich jak 0001, 0002, 0003 itd. Fakt, że pliki zostały odzyskane jest wspaniały, ale próba ustalenia, jakie typy tych plików były koszmarem.

Używając łańcuchów masz szansę walczyć o wypracowanie typu pliku. Wiedząc, że plik jest plikiem opendocument.text, możesz go zapisać z rozszerzeniem ODT i otworzyć w pisarzu LibreOffice.

Jeśli nie wiesz, że plik ODT jest w zasadzie skompresowany. Jeśli zmienisz nazwę pliku.odt na swoją nazwę pliku.zip, możesz otworzyć go w narzędziu do archiwizacji, a nawet rozpakować plik.

Alternatywne zachowania

Domyślnie komenda ciągi zwraca wszystkie ciągi w pliku, ale możesz zmienić zachowanie tak, aby zwracało łańcuchy z zainicjowanych, załadowanych sekcji danych w pliku.

Co to dokładnie oznacza? Nikt nie wydaje się wiedzieć.

Sensowne jest założenie, że używasz ciągów znaków, aby spróbować znaleźć typ pliku lub wyszukać konkretny tekst w pliku.

Jeśli podczas uruchamiania polecenia łańcuchy przy użyciu domyślnego zachowania nie uzyskasz oczekiwanego wyniku, spróbuj uruchomić jedno z poniższych poleceń, aby sprawdzić, czy to robi różnicę:

ciągi -d nazwa-plikuciągi --data nazwafilmowa

Strona podręcznika informuje, że powyższe polecenie może pomóc w zmniejszeniu ilości śmieci zwracanych przez łańcuchy.

Komendę "łańcuchy" można skonfigurować tak, aby działała odwrotnie, tak aby przełącznik minus d był domyślnym zachowaniem. Jeśli tak jest w twoim systemie, możesz zwrócić wszystkie dane za pomocą następującego polecenia:

string -a nazwa pliku

Formatowanie danych wyjściowych

Możesz uzyskać tekst w wynikach, aby wyświetlić nazwę pliku obok każdego wiersza tekstu.

Aby to zrobić, uruchom jedno z następujących poleceń:

ciągi -f twoja nazwa plikuciągi --print-file-name nazwa-pliku

Wynik będzie teraz wyglądał mniej więcej tak:

nazwapliku: fragment tekstuyourfilename: kolejny fragment tekstu

Jako część wyjścia możesz również wyświetlić przesunięcie miejsca, w którym tekst pojawia się w pliku. Aby to zrobić, uruchom następujące polecenie:

ciągi -o nazwa pliku

Dane wyjściowe będą wyglądały mniej więcej tak:

16573 twoje

17024 tekst

Przesunięcie jest w rzeczywistości przesunięciem ósemkowym, chociaż w zależności od tego, w jaki sposób skompilowane zostały ciągi znaków dla twojego systemu, może to być również przesunięcie szesnastkowe lub dziesiętne.

Bardziej dokładnym sposobem uzyskania pożądanego przesunięcia jest użycie następujących poleceń:

ciągi -t d nazwafilwyciągi -t o swoją nazwę plikuciągi -t h nazwa pliku

Wartość minus t oznacza przesunięcie, a następujący znak określa rodzaj przesunięcia. (tj. d = dziesiętny, o = ósemkowy, h = hex).

Domyślnie komenda ciągi drukuje każdy nowy ciąg w nowej linii, ale można ustawić separator do wyboru. Na przykład, aby użyć symbolu potoku ("|") jako ogranicznika, uruchom następujące polecenie:

ciągi -s "|" nazwa twojego pliku

Dostosuj limit ciągów

Polecenie smings domyślnie szuka ciągu 4 drukowanych znaków z rzędu. Możesz dostosować wartość domyślną tak, aby zwracała tylko ciąg znaków składający się z 8 znaków do wydrukowania lub 12 znaków do wydrukowania.

Dostosowując ten limit, możesz dostosować dane wyjściowe, aby uzyskać jak najlepszy wynik. Szukając zbyt długiego ciągu, ryzykujesz pominięcie użytecznych tekstów, ale jeśli je skrócisz, możesz otrzymać dużo więcej śmieci.

Aby dostosować ograniczenie ciągu, uruchom następujące polecenie:

ciągi -n 8 nazwa-pliku

W powyższym przykładzie zmieniłem limit na 8.Możesz zastąpić 8 wybranym numerem.

Możesz również użyć następującego polecenia, aby zrobić to samo:

ciągi --bytes = 8 yourfilename

Uwzględnij Whitespace

Domyślnie polecenie string zawiera białe znaki, takie jak tabulatory lub spacje jako znaki do wydrukowania. Dlatego jeśli masz ciąg znaków, który brzmi "Kot siedział na macie", polecenie "ciągi" zwróci cały tekst.

Nowe znaki linii i znaki powrotu karetki nie są domyślnie uważane za znaki drukowalne.

Aby uzyskać ciągi znaków rozpoznawania nowych znaków linii i znaków powrotu karetki jako znaków, które można drukować, uruchom ciągi w następujący sposób:

ciągi -w nazwie pliku

Zmień kodowanie

Dostępnych jest 5 opcji kodowania do użycia z ciągami:

  • s = 7-bitowy bajt (używany dla ASCII, ISO 8859)
  • S = 8 bitów
  • b = 16-bitowy bigendian
  • l = 16-bitowy Littleendian

Wartością domyślną jest 7-bitowy bajt.

Aby zmienić kodowanie uruchom następujące polecenie:

łańcuchy -s nazwa plikuciągi --encoding = s nazwa pliku

W powyższym poleceniu podałem domyślne "s", co oznacza 7-bitowy bajt. Po prostu zamień litery "s" na wybraną literę kodowania.

Zmień nazwę opisu pliku binarnego

Możesz zmienić zachowanie łańcuchów, tak aby używał innej biblioteki deskryptorów plików binarnych, niż ta, która została dostarczona dla twojego systemu.

Ta zmiana jest dla ekspertów. Jeśli masz inną bibliotekę do użycia, możesz to zrobić, uruchamiając następujące polecenie:

ciągi -T bfdname

Odczytywanie opcji z pliku

Jeśli zamierzasz używać tych samych opcji za każdym razem, nie będziesz musiał określać wszystkich przełączników za każdym razem, gdy uruchomisz polecenie, ponieważ wymaga to czasu.

Możesz utworzyć plik tekstowy za pomocą nano i określić opcje w tym pliku.

Aby wypróbować to w terminalu, uruchom następujące polecenie:

nano stringsopts

W pliku wpisz następujący tekst:

-f -o -n 3 -s "|"

Zapisz plik, naciskając CTRL i O, i wyjdź, naciskając CTRL i X.

Aby uruchomić polecenia łańcuchów za pomocą tych opcji, uruchom następujące polecenie:

ciągi @stringsopts yourfilename

Opcje będą czytane z pliku stringsopts i powinieneś zobaczyć nazwę pliku przed każdym łańcuchem, przesunięciem i "|" jako separator.

Otrzymywać pomoc

Jeśli chcesz przeczytać więcej o łańcuchach, możesz uruchomić poniższe polecenie, aby uzyskać pomoc.

ciągi - pomoc

Możesz również przeczytać stronę podręcznika:

struny człowieka

Dowiedz się, która wersja ciągów jest uruchomiona

Aby znaleźć wersję uruchomionych łańcuchów, uruchom jedno z następujących poleceń:

ciągi -vciągi -Vciągi --version