512 байтов в конце добавляются достаточно легко.
dd if=/dev/zero count=1 >> your.img
512 байтов в запуске, к сожалению, требуют перезаписи всего изображения.
dd if=your.img of=your.img.new seek=1
Очень необычно сделать это к изображению жесткого диска. Таким образом, я задаюсь вопросом, является ли это тем, что Вы действительно хотели.
Если не возражаете против порядка вывода:
$ join <(sort file1) <(sort file2)
COG0001 1140.Synpcc7942_0645 H
COG0001 1148.SYNGTS_2220 H
COG0001 882.DVU3168 H
COG0002 883.DvMF_2502 E
С помощью awk можно сделать так:
$ awk 'NR==FNR{a[$1]=$2;next}{print $0, a[$1]}' file2 file1
COG0001 882.DVU3168 H
COG0002 883.DvMF_2502 E
COG0001 1140.Synpcc7942_0645 H
COG0001 1148.SYNGTS_2220 H
Блок NR==FNR{a[$1]=$2;next}
запускается для file2, а второе поле хранится на карте, используя первое поле в качестве ключа.
Блок {печать $0, a[$1]}
запускается для file1 и печатает текущую строку, за которой следует значение, полученное с карты.
Если вы хотите, чтобы данные были табличными (с другими пробелами, не разделяющими поля), вы можете запустить awk -F'\t' ...
, и если вы также хотите, чтобы выходные данные были разделены на закладки, используйте awk -F'\t' -v OFS='\t' ....
.