Вы также можете решить эту задачу с помощью AWK
:
NR == FNR {
line[$1];
next;
}
$1 in line {
print $0;
}
В качестве подстрочника:
awk 'NR == FNR {line[$1]; next;} $1 in line' file1.txt file2.txt
Обязательно сохраните в памяти меньший файл, то есть поместите его в качестве первого аргумента подстрочника.
Вы можете использовать eval
для запуска команды, сохраненной в строке (или на основе вывода другой программы):
eval 'echo Hello World'
eval $(magic-ssh-commmand-generator)
Изman bash
:
eval [arg...]
The args are read and concatenated together into a single command.
This command is then read and executed by the shell, and its exit status
is returned as the value of eval. If there are no args, or only null
arguments, eval returns 0.