Sim. Na página de manual do dd , você está procurando por algo como:
dd bs=1 count=60 if=_filename_1_ of=_filename_2_
dd bs=1 skip=60 count=40 if=_filename_1_ of=_filename_2_
onde _filename_n_
é substituído por um nome de arquivo real.
bs=1
significa que count
e skip
são contagens de bytes. skip
é quantos para pular; count
é quantos copiar. As contagens de bytes Editar começam de 0, não 1. Portanto, para começar no primeiro byte, use skip=0
(ou deixe skip
não especificado).
Como uma função bash, você poderia usar:
# copy_nk(n, k, infile, outfile)
copy_nk() {
dd bs=1 count="$1" skip="$2" ${3:+if="$3"} ${4:+of="$4"}
}
e depois chamá-lo como
copy_nk 60 0 infile.txt outfile.txt
(com k = 0
porque os números de bytes começam em zero).
Com o ${3:+...}
, você pode deixar o arquivo de saída ou o arquivo de entrada. Por exemplo,
cat infile.txt | copy_nk 60 0 > outfile.txt