Piszę skrypt bash, który musi pobrać nagłówek (pierwsze 10 bajtów) pliku, a następnie w innej sekcji uzyskać wszystko oprócz pierwszych 10 bajtów. Są to pliki binarne i prawdopodobnie będą miały znaki \0
„i \n
” w ciągu pierwszych 10 bajtów. Wygląda na to, że większość narzędzi działa z plikami ASCII. Jaki jest dobry sposób na wykonanie tego zadania?
80
Odpowiedzi:
Aby uzyskać pierwsze 10 bajtów, jak już wspomniano:
Aby uzyskać wszystkie oprócz pierwszych 10 bajtów (przynajmniej z GNU
tail
):źródło
dd
Pomysł mi się spodobał, ale ta opcja nie wymaga zmiany rozmiaru bufora, więc działa dobrze z dużymi plikami. Dzięki.head -c 10
robi tutaj właściwą rzecz.źródło
Możesz użyć
dd
polecenia, aby skopiować dowolną liczbę bajtów z pliku binarnego.dd if=infile of=outfile1 bs=10 count=1 dd if=infile of=outfile2 bs=10 skip=1
źródło
dd
nie jest wiarygodne. Może odczytać mniej bajtów niż żądano z wielu różnych powodów.{ printf a; sleep 1; printf b; } | dd bs=2 count=1 2>/dev/null | wc -c