Используйте это вместо:
awk -F, '{print FNR}' file1 file2
Переменная FNR
в awk дает количество записей для каждого входного файла. Но, когда вы используете cat ... | awk
awk читает для дескриптора файла stdin, поэтому awk видит только 1 "файл".
Попробуйте сделать это, чтобы лучше понять (FILENAME
содержит текущий обрабатываемый файл):
$ awk -F, '{print FILENAME" "FNR}' file1 file2
file1 1
file1 2
file1 3
file2 1
file2 2
file2 3
file2 4
$ cat file1 file2 | awk -F, '{print FILENAME" "FNR}'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Как вы можете видеть в первом примере, обрабатывается 2 файла, во втором примере FILENAME
- -
, что указывает на стандартный ввод.
Изменить: См. следующий пример:
$ cat file1 | awk -F, '{print FILENAME" "FNR}' - file1 <(cat file1)
- 1
- 2
- 3
file1 1
file1 2
file1 3
/dev/fd/63 1
/dev/fd/63 2
/dev/fd/63 3
Сначала awk читает из stdin (часть cat file1
, также являющаяся параметром -
для awk). Затем обычный file1
. Наконец, часть <(cat file1)
, которая создает трубу (/dev/fd/63
), откуда awk читает.
No, los recursos compartidos (s )exportados por su NAS incluyen un nombre (que puede no ser el nombre del directorio real sino un alias ). Lo necesita para identificar el recurso compartido.