При использовании конвейера оболочка выполняет каждую команду в конвейере одновременно и ждет завершения всех из них, прежде чем перейти к следующей команде. Это объясняется в документации :
.
If the pipeline is not executed asynchronously (see Lists), the shell waits for all commands in the pipeline to complete.
Когда вышеприведенное относится к асинхронному выполнению конвейера, речь идет о запуске всего конвейера в фоновом режиме с &
.
Когда вы используете подстановку процесса, оболочка не ожидает ее завершения. Документация просто говорит:
The process list is run asynchronously, and its input or output appears as a filename.
Одна из возможностей — использовать cut
с разделителем, установленным на ,
:
$ cut -d',' -f 7 test
140920
(снова, предполагая, что файл называетсяtest
).
Вы можете использовать awk -F "," '{print $7}'
.
Например, если содержимое находится в файле test
, то
awk -F "," '{print $7}' test