Хотя manpage-alert
делает то, о чем вы просите, вы должны отметить, что список в ссылке из вашего вопроса создается другим процессом, а именно следующей проверкой в Lintian:
https: / /github.com/Debian/lintian/blob/master/checks/manpages.pm
Таким образом, его можно получить, вызвав lintian
с -T binary-without-manpage
вариант (и другие параметры для выбора пакетов, которые вы хотите проверить).
С awk
:
awk '
NR==FNR{for(i=1;i<=NF;i++){values[$i]};next}
FNR==1{for(i=1;i<=NF;i++){if ($i in values){nf[i]}}}
{sp=""; for(i=1;i<=NF;i++){if (i in nf){printf("%s%s",sp,$i);sp=" "}}}{print ""}
' file2 file1
Это сначала читает file2
, сохраняет каждое значение в массиве values
, затем обрабатывает file1
- на 1-я строка проверяет, какие поля являются общими, и сохраняет эти номера полей в другом массиве nf
, который затем используется в качестве ссылки для выборочной печати соответствующих столбцов.
Если выполнить задачу онлайн:
cut -d' ' -f $(
echo $(
head -1 file1 | tr ' ' '\n' |
grep -nxf <(tr ' ' '\n' <file2) |
cut -d: -f1
) |
tr ' ' ','
) file1
Или с комментарием Тора
cut -d' ' -f $(
head -1 file1 | tr ' ' '\n' |
grep -nxf <(tr ' ' '\n' <file2) |
cut -d: -f1 |
paste -sd ,
) file1