Чим відрізняється кількість рядків?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$робиш те, що ти хотів, але це не буде працювати в сценарії IIRC.
teeкоманду у своєму сценарії.
Чим відрізняється кількість рядків?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$робиш те, що ти хотів, але це не буде працювати в сценарії IIRC.
teeкоманду у своєму сценарії.
Відповіді:
$_розширюється до ./access.log(останній аргумент останньої виконаної команди), не ./data/log.sample.
Таким чином, ви насправді бачите кількість рядків ./access.log.
Перенаправлення ( >) не є частиною headкоманди, оскільки це робиться оболонкою до того, як headкоманда навіть буде запущена. Значить, з $_тобою дістанешся ./access.log.
Від man bash:
($ _, підкреслення.) При запуску оболонки встановіть абсолютне ім'я шляху, яке використовується для виклику сценарію оболонки або оболонки, який виконується, як передано в середовищі або списку аргументів. Згодом розширюється до останнього аргументу до попередньої команди , після розширення. Також встановіть повне ім'я шляху, яке використовується для виклику кожної команди, виконаної та розміщеної у середовищі, експортованому до цієї команди. Під час перевірки пошти цей параметр містить ім'я поштового файлу.