Рейтинг:1

zsh: Понимание вывода команды из wc и передача его другим командам

флаг gq

Я пытаюсь создать сложную команду (используя замены оболочки и арифметические выражения), и мне было интересно, может ли кто-нибудь помочь мне понять вывод команды Туалет команда.

Например, вот пара примеров:

[11:10:33] лабреу:~$wc -l test.txt
5 test.txt
[11:10:40] labreu:~$cat test.txt| туалет -л
5

Почему команда возвращает разные значения? Я пытался посмотреть его справочную страницу, но там ничего нет...

Кстати, я спрашиваю об этом только потому, что пытался пропустить x строк файла с помощью следующей команды:

[11:25:35] labreu:~ $ tail -n "+$(( $(wc -l test.txt)-2 ))" test.txt                       
zsh: неверное математическое выражение: ожидается оператор в `test.txt-2...'

Заметив, что Туалет возвращается число_линий имя файла и что с помощью каналов (или перенаправления дает другой результат) мне удалось получить то, что мне нужно, используя что-то вроде этого:

хвост -n "+$(( $(wc -l<test.txt)-2 ))" test.txt

хвост -n "+$(( $(cat test.txt | wc -l )-2 ))" test.txt 

В любом случае остается главный вопрос: почему Туалет Команда возвращает другой вывод при использовании внутри канала (или с перенаправлением ввода)?

Спасибо

Рейтинг:0
флаг cn

Первый метод, который вы используете в командной строке. Второй способ можно использовать при кодировании.

Сама команда может сделать это для более чем 1 файла, поэтому она должна сообщить вам, какое количество строк принадлежит какому файлу.

$ туалет -l *.xml
   712 1.xml
  3055 2.xml
   464 3.xml
  3055 4.xml

туалет -л сам по себе не различает 1 файл, подстановочный знак или несколько файлов. Чтобы сделать это без имени, которое я обычно использую wc -l < ​​файл.txt так с редиректом.

Метод конкатенации/конвейерная версия всегда представляет собой 1 файл, поэтому подразумевается имя файла. Цикл for по-прежнему подразумевает 1 файл на туалет -л но повторяя одно и то же несколько раз.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.