GNU/Linux >> Znalost Linux >  >> Linux

Jak vytisknu (numerické) hodnoty ASCII každého znaku v souboru?

Standardní příkaz je od , pro osmičkový výpis (ačkoli pomocí voleb můžete změnit z osmičkové soustavy na desítkovou nebo šestnáctkovou...):

$ echo Apple | od -An -vtu1
  65 112 112 108 101  10

Všimněte si, že vypisuje hodnotu bajtu každého bajtu v souboru. Nemá to nic společného s ASCII nebo jinou znakovou sadou.

Pokud soubor obsahuje A v dané znakové sadě a vy byste chtěli vidět 65, protože to je bajt používaný pro A v ASCII, pak budete muset udělat:

< file iconv -f that-charset -t ascii | od -An -vtu1

Nejprve převeďte tento soubor na ascii a poté vypište odpovídající hodnoty bajtů. Například Apple<LF> v EBCDIC-UK by bylo 193 151 151 147 133 37 (301 227 227 223 205 045 v osmičkové soustavě).

$ printf '\301\227\227\223\205\045' | iconv -f ebcdic-uk -t ascii | od -An -vtu1
  65 112 112 108 101  10

hexdump , od , xxd nebo $YOUR_FAVORITE_LANGUAGE to všichni umí.

% echo Apple | hexdump -C
00000000  41 70 70 6c 65 0a                                 |Apple.|
00000006
% echo Apple | perl -ne 'printf "%vd\n", $_' 
65.112.112.108.101.10
% echo Apple | clisp <( echo '(print (mapcar #'\''char-code (coerce (read-line *standard-input*) '\''list)))' )
(65 112 112 108 101)
% 

Linux
  1. Jak přidat nový řádek na konec souboru?

  2. Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

  3. Jak mohu smazat nový řádek, pokud je to poslední znak v souboru?

  1. Jak připojit výstup do souboru?

  2. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  3. Jak přesměrovat výstup system() do souboru?

  1. Jak vytisknout pouze hex hodnoty z hexdump bez čísel řádků nebo tabulky ASCII?

  2. Příkaz Linux pro zobrazení obsahu daného souboru bajt po byte se znakem a jeho číselným vyjádřením zobrazeným pro každý bajt

  3. Změňte pořadí řádků v souboru