На Debian расширение RANDR
было включено в xvfb/2:1.18.0, загруженном в "unstable" в конце января 2016 г.
Попробуйте:
$ awk 'FNR==NR{ids[$1]; next} !($1 in ids)' ids file
denovo10 someverylaaargenumbers and lotandlotsoftextuntil 5400........
denovo10000 someverylaaargenumbers and lotandlotsoftextuntil 5400.....
denovo184117 someverylaaargenumbers and lotandlotsoftextuntil 5400......
Как это работает:
FNR==NR{ids[$1]; next}
При чтении первого файла ids
создается ключ в ассоциативном массиве ids
с идентификатором. Затем он пропускает остальные команды и переходит к строке next
.
!($1 in ids)
При чтении второго файла печатает строку, если первое поле не является ключом в ассоциативном массиве ids
.
Когда вы убедитесь, что код работает правильно, файл можно изменить:
awk 'FNR==NR{ids[$1]; next} !($1 in ids)' ids file >tmp && mv tmp file
Сgrep
:
grep -vwf file matrix > matrix.new
mv matrix.new matrix
-f FILE
использовать FILE
в качестве входного файла шаблона -w
выбрать только те строки, содержащие совпадения, которые образуют целые слова -v
выбрать не совпадающие -строки Обратите внимание, что file
не должен содержать пустых строк.
Или, если вы создадите свой файл идентификатора вручную с привязкой ^
для соответствия началу строки и символом пробела после каждого идентификатора, чтобы отметить конец шаблона:
printf '^%s \n' denovo{1,100,1000,100000} > file
grep -vf file matrix > matrix.new
mv matrix.new matrix