Перенаправление справа налево

Попробуйте этот однострочный awk,

$ awk 'END{ var=FILENAME; split (var,a,/\//); print a[5]}' /home/abc/imp/asgd.csv
asgd.csv
2
03.03.2019, 10:12
2 ответа

IIUC, вы можете использовать Bash функцию замены процесса для имитации второй формы:

$ echo foobar | grep bar
foobar
$ grep bar <(echo foobar)
foobar

Обратите внимание, что для того, чтобы это работало, используемая команда должна иметь возможность принимать файл, поскольку это делает параметр -grep.

2
27.01.2020, 22:27

В целом вы можете думать о командах между каналом |как о выполняемых в подоболочке.

Итак,

foo | bar

можно рассматривать как

(foo) | (bar)

Так что это может помочь понять, как перенаправление вписывается в вещи.

foo < bar | baz

будет эквивалентно

(foo < bar) | (baz)

т.е. вводом в fooбудет файл bar, а выводом будет ввод в baz.

Процесс подстановки следует тем же правилам перенаправления:

foo <(echo bar) | baz

эквивалентно

( foo <(echo bar) ) | (baz)
-2
27.01.2020, 22:27

Теги

Похожие вопросы