tail -c +32
đầu ra của nó trừ đi 31 byte đầu tiên. (Có, đối số bị tắt bởi một.) Để chỉnh sửa tệp tại chỗ, hãy sử dụng miếng bọt biển trong một vòng lặp hoặc nếu bạn không có nó và không muốn làm phiền, hãy thực hiện công việc của nó trong trình bao:
for x in /foo/*; do tail -c +32 "$x" | sponge "$x"; done
for x in /foo/*; do tail -c +32 "$x" >"$x.new" && mv "$x.new" "$x"; done
Nếu các lệnh bị gián đoạn vì bất kỳ lý do gì (ví dụ như mất điện), có thể khó tìm ra nơi bạn rời đi. Viết các tệp mới vào một thư mục riêng sẽ giúp mọi việc dễ dàng hơn.
mkdir /foo.tmp
cd /foo
for x in *; do tail -c +42 -- "$x" >"/foo.tmp/$x" && rm -- "$x"; done
mv /foo.tmp/* /foo
rmdir /foo.tmp
Nếu các tệp thực sự lớn (như trong, đủ lớn để có hai bản sao của một bản duy nhất là một vấn đề), bạn có thể sử dụng một trong các kỹ thuật được đề cập trong chuỗi này .