Запускает 2 процесса. &
отображает PID второго процесса. Пример ниже.
$ echo $$
13358
$ sleep 100 | sleep 200 &
[1] 13405
$ ps -ef|grep 13358
ec2-user 13358 13357 0 19:02 pts/0 00:00:00 -bash
ec2-user 13404 13358 0 19:04 pts/0 00:00:00 sleep 100
ec2-user 13405 13358 0 19:04 pts/0 00:00:00 sleep 200
ec2-user 13406 13358 0 19:04 pts/0 00:00:00 ps -ef
ec2-user 13407 13358 0 19:04 pts/0 00:00:00 grep --color=auto 13358
$
Как прокомментировал Сато Кацура , вы можете «обмануть» соединение, чтобы увидеть только поле 1 из файла B, а затем попросить его выполнить обычное соединение; это печатает строку из файла A и (пустую )оставшуюся часть строки в (обманутом )файле B:
join fileA <(awk '{print $1}' fileB)
Данные входные файлы:
$ cat fileA
1 blah
2 foo
3 bar
$ cat fileB
3 barely
4 baz
5 qux
В результате получается:
$ join fileA <(awk '{print $1}' fileB)
3 bar
Подстановочный знак указал, что вы можете сделать это более прямо (, избегая подстановки процесса ), перенаправляя вывод awk вjoin
:
awk '{print $1}' fileB | join fileA -