LINUX.ORG.RU

История изменений

Исправление Vsevolod-linuxoid, (текущая версия) :

Нет, проблема в том, что ты не понимаешь, как работает пайп.

tail -n 100 /var/log/messages | grep -i error и

tail -n 100 /var/log/messages
grep -i error

Это прям сильно разное. Суть в том, что через | выхлоп первой команды проходит через вторую.

Дело в том, что | – это оператор языка программирования bash (и схожих, вроде sh, zsh, ksh, csh и прочих). Да, shell в Unix-like не просто TUI, где можно вводить команды, а интерактивный сеанс интерпретируемого языка программирования, полного по Тьюрингу, со слабой динамической типизацией.

Вот пример целого скрипта в строчку, это полноценная программа, что можно выполнить, введя как одну команду: for i in $(LANG=C apt list --installed 2>/dev/null | grep -v "^Listing..." | cut -f 2 -d / | cut -f 1 -d " " | cut -f 1 -d "," | sort | uniq); do echo $i; LANG=C apt list --installed 2>/dev/null | grep "/$i" | wc -l; done

Исправление Vsevolod-linuxoid, :

Нет, проблема в том, что ты не понимаешь, как работает пайп.

tail -n 100 /var/log/messages | grep -i error и

tail -n 100 /var/log/messages
grep -i error

Это прям сильно разное. Суть в том, что через | выхлоп первой команды проходит через вторую.

Дело в том, что | – это оператор языка программирования bash (и схожих, вроде sh, zsh, ksh, csh и прочих). Да, shell в Linux не просто TUI, где можно вводить команды, а интерактивный сеанс интерпретируемого языка программирования, полного по Тьюрингу, со слабой динамической типизацией.

Вот пример целого скрипта в строчку, это полноценная программа, что можно выполнить, введя как одну команду: for i in $(LANG=C apt list --installed 2>/dev/null | grep -v "^Listing..." | cut -f 2 -d / | cut -f 1 -d " " | cut -f 1 -d "," | sort | uniq); do echo $i; LANG=C apt list --installed 2>/dev/null | grep "/$i" | wc -l; done

Исходная версия Vsevolod-linuxoid, :

Нет, проблема в том, что ты не понимаешь, как работает пайп.

tail -n 100 /var/log/messages | grep -i error и

tail -n 100 /var/log/messages
grep -i error

Это прям сильно разное. Суть в том, что через | выхлоп первой команды проходит через вторую.