ファイルから末尾のCRLFを削除する方法は?

ファイルから末尾のCRLFを削除する方法は?

後ろにCRLF(合計2バイト)があるバイナリファイルがあり、それを削除したいと思います。どうすればいいですか?私はbusyboxを使用していますが、Perlは使用しません。

ベストアンサー1

ls一般的なBusyBoxインストールの場合、サイズを取得するには出力を解析する必要があると思います。サイズを決定したら、.を使用してファイルの最初のn-2バイトを抽出しますhead

size=$(ls -Lnd -- "$file" | awk 'NR==1 {print $5}')
head -c "$(($size - 2))" <"$file" >"$file.new"

ファイルをその場で切り取るには、 を使用しますdd

size=$(ls -Lnd -- "$file" | awk 'NR==1 {print $5}')
dd if=/dev/null of="$file" bs="$(($size - 2))" seek=1

おすすめ記事