Один способ использовать awk
:
Содержание script.awk
:
## Process first file of arguments. Save 'id' as key and 'No' as value
## of a hash.
FNR == NR {
if ( FNR == 1 ) {
header = $2
next
}
hash[ $1 ] = $2
next
}
## Process second file of arguments. Print header in first line and for
## the rest check if first field is found in the hash.
FNR < NR {
if ( $1 in hash || FNR == 1 ) {
printf "%s %s\n", $0, ( FNR == 1 ? header : hash[ $1 ] )
}
}
Выполните его как:
awk -f script.awk File1.txt File2.txt | column -t
Со следующим результатом:
id P R S NO
gi|371443198|gb|JH556662.1| 2 2 0 7573913
gi|371440577|gb|JH559283.1| 21 19 2 6931777
Наиболее вероятной причиной Ошибки ввода/вывода была бы фактическая дисковая емкость ошибка ввода-вывода.
Посмотрите, сообщает ли ядро о каком-либо диске ошибки ввода-вывода или ошибки файловой системы путем рассмотрения недавних записей в dmesg буфере журнала ядра:
dmesg | tail -30
rsync
это перестало бы работать как вышеупомянутое и произвело бы:EXT3-fs error (device foobar) in ext3_new_inode: IO failure
– Phrogz 26.10.2013, 00:55