Kirjoittaja Aihe: [Ratkaistu]Kuinka tiedostosta poistetaan 2 ensimmäistä merkkiä?  (Luettu 2037 kertaa)

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Millä bash-käskyllä voit poistaa tiedostosta 2 ensimmäistä binääri-merkkiä ?
« Viimeksi muokattu: 04.05.21 - klo:15.26 kirjoittanut kamara »

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Vs: Kuinka tiedostosta poistetaan 2 ensimmäistä merkkiä?
« Vastaus #1 : 04.05.21 - klo:13.09 »
Millä bash-käskyllä voit poistaa tiedostosta 2 ensimmäistä binääri-merkkiä ?

Tämä oli niin mielenkiintoinen että piti tutkia ja löytyi tämä:

https://unix.stackexchange.com/questions/13907/delete-the-first-n-bytes-of-files

Sieltä poimittuna tämä kohta:

Koodia: [Valitse]
dd if="$file" of="$file~" bs=1 skip=31
mv "$file~" "$file"

Joka sinun tapauksessa tarkoittaa että käytetään parametriä: skip=2

On kyllä tosi hidas joten isommilla binaareillä kestää pitkään kun käsitellään tiedosta tavu kerrallaan tuolla tapaa.





nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Kuinka tiedostosta poistetaan 2 ensimmäistä merkkiä?
« Vastaus #2 : 04.05.21 - klo:13.56 »
dd:n iflag=skip_bytes mahdollistaa skippauksen tavuittain blokkikoosta riippumatta, jolloin käsittely on huomattavasti nopeampaa esimerkiksi megan blokeilla:

Koodia: [Valitse]
dd if=lähdetiedosto of=kohdetiedosto bs=1M skip=2 iflag=skip_bytes

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Vs: Kuinka tiedostosta poistetaan 2 ensimmäistä merkkiä?
« Vastaus #3 : 04.05.21 - klo:15.26 »
Kiitoksia nerokkaista vinkeistä.  8)

Tosin onnistuin ratkaisemaan kyseisen ongelman toisella tapaa, mutta tämä on kyllä kiva tietää.

Kiitoksia paljon...