Чтобы избежать перезаписи всего файла, который вы пытаетесь найти, до конца файла, сделайте резервную копию одного символа и запишите.
Делать это с помощью обычных инструментов оболочки Unix немного ненадежно.
Однако есть Perl, который делает все. Вы также можете использовать Ruby, Python или любой другой полнофункциональный язык сценариев.
Пример Perl:
#!/usr/bin/env perl
use strict;
use Fcntl qw(:seek);
open(F, '+<', 'testfile') or die "$!";
seek(F, -1, SEEK_END) or die "$!";
print F "new data\n";
close(F) or die "$!";