Найти + Perl:
$ find . -type f -iname '*.c' -printf '%h\0' |
perl -0 -ne '$k{$_}++; }{ print scalar keys %k, " $.\n" '
7 29
Команда find найдет любые обычные файлы (так что никаких символических ссылок или каталогов), а затем напечатать имя каталога, которое они находятся в (%h), а затем \0.
perl -0 -ne: прочитайте ввод строки за строкой (-n) и примените скрипт, заданный -e для каждой строки. [F9] устанавливает разделитель входных строк на \0, чтобы мы могли считывать ввод с нулевым ограничением. $k{$_}++: $_ - специальная переменная, которая принимает значение текущей строки. Это используется как ключ к хешу %k, значения которого представляют собой количество раз, когда была видна каждая строка ввода (имя каталога). }{: это сокращенный способ написания END{}. Любые команды после }{ будут выполняться один раз, после того, как все данные будут обработаны. print scalar keys %k, " $.\n": keys %k возвращает массив ключей в хеше %k. scalar keys %k дает количество элементов в этом массиве, количество просмотренных каталогов. Это печатается вместе с текущим значением $., специальной переменной, которая содержит текущий номер строки ввода. Так как это выполняется в конце, текущий номер строки ввода будет номером последней строки, поэтому количество строк, видимых до сих пор.Вы можете расширить команду perl для этого, для ясности:
find . -type f -iname '*.c' -printf '%h\0' |
perl -0 -e 'while($line = <STDIN>){
$dirs{$line}++;
$tot++;
}
$count = scalar keys %dirs;
print "$count $tot\n" '
ohmyzsh требует установки оболочки zsh.
Здесь подробно объясняется проблема.
Обходным решением является установка zsh во-первых, переход на zsh, а затем запустите и запустите ohmyzsh так же, как и раньше.
Пример с помощью wget:
sudo apt install zsh
apt-get install git-core
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
ohmyzsh сообщит, что он успешно установлен с этот или аналогичный вывод:
--2018-05-08 18:44:07-- https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [following]
--2018-05-08 18:44:07-- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.44.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3941 (3.8K) [text/plain]
Saving to: ‘STDOUT’
- 100%[==========================================================>] 3.85K --.-KB/s in 0s
2018-05-08 18:44:07 (57.9 MB/s) - written to stdout [3941/3941]
Cloning Oh My Zsh...
Cloning into '/home/me/.oh-my-zsh'...
remote: Counting objects: 858, done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 858 (delta 16), reused 780 (delta 10), pack-reused 0
Receiving objects: 100% (858/858), 572.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (16/16), done.
Checking connectivity... done.
Looking for an existing zsh config...
Using the Oh My Zsh template file and adding it to ~/.zshrc
I can't change your shell automatically because this system does not have chsh.
Please manually change your default shell to zsh!
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
Если вы хотите изменить оболочки, вы можете сделать это, выпустив команды
chsh -s `which zsh`
sudo reboot
Возможно, перезагрузка может не потребоваться, выйдите из системы и вернитесь назад.
Чтобы вернуться к оболочке по умолчанию, просто введите команду
chsh -s /bin/bash
Источники:
https://github.com/robbyrussell/oh-my-zsh/issues/227#issuecomment-825773
man chsh
ohmyzsh требует установки оболочки zsh.
Здесь подробно объясняется проблема.
Обходным решением является установка zsh во-первых, переход на zsh, а затем запустите и запустите ohmyzsh так же, как и раньше.
Пример с помощью wget:
sudo apt install zsh
apt-get install git-core
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
ohmyzsh сообщит, что он успешно установлен с этот или аналогичный вывод:
--2018-05-08 18:44:07-- https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [following]
--2018-05-08 18:44:07-- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.44.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3941 (3.8K) [text/plain]
Saving to: ‘STDOUT’
- 100%[==========================================================>] 3.85K --.-KB/s in 0s
2018-05-08 18:44:07 (57.9 MB/s) - written to stdout [3941/3941]
Cloning Oh My Zsh...
Cloning into '/home/me/.oh-my-zsh'...
remote: Counting objects: 858, done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 858 (delta 16), reused 780 (delta 10), pack-reused 0
Receiving objects: 100% (858/858), 572.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (16/16), done.
Checking connectivity... done.
Looking for an existing zsh config...
Using the Oh My Zsh template file and adding it to ~/.zshrc
I can't change your shell automatically because this system does not have chsh.
Please manually change your default shell to zsh!
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
Если вы хотите изменить оболочки, вы можете сделать это, выпустив команды
chsh -s `which zsh`
sudo reboot
Возможно, перезагрузка может не потребоваться, выйдите из системы и вернитесь назад.
Чтобы вернуться к оболочке по умолчанию, просто введите команду
chsh -s /bin/bash
Источники:
https://github.com/robbyrussell/oh-my-zsh/issues/227#issuecomment-825773
man chsh
ohmyzsh требует установки оболочки zsh.
Здесь подробно объясняется проблема.
Обходным решением является установка zsh во-первых, переход на zsh, а затем запустите и запустите ohmyzsh так же, как и раньше.
Пример с помощью wget:
sudo apt install zsh
apt-get install git-core
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
ohmyzsh сообщит, что он успешно установлен с этот или аналогичный вывод:
--2018-05-08 18:44:07-- https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [following]
--2018-05-08 18:44:07-- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.44.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3941 (3.8K) [text/plain]
Saving to: ‘STDOUT’
- 100%[==========================================================>] 3.85K --.-KB/s in 0s
2018-05-08 18:44:07 (57.9 MB/s) - written to stdout [3941/3941]
Cloning Oh My Zsh...
Cloning into '/home/me/.oh-my-zsh'...
remote: Counting objects: 858, done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 858 (delta 16), reused 780 (delta 10), pack-reused 0
Receiving objects: 100% (858/858), 572.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (16/16), done.
Checking connectivity... done.
Looking for an existing zsh config...
Using the Oh My Zsh template file and adding it to ~/.zshrc
I can't change your shell automatically because this system does not have chsh.
Please manually change your default shell to zsh!
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
Если вы хотите изменить оболочки, вы можете сделать это, выпустив команды
chsh -s `which zsh`
sudo reboot
Возможно, перезагрузка может не потребоваться, выйдите из системы и вернитесь назад.
Чтобы вернуться к оболочке по умолчанию, просто введите команду
chsh -s /bin/bash
Источники:
https://github.com/robbyrussell/oh-my-zsh/issues/227#issuecomment-825773
man chsh
ohmyzsh требует установки оболочки zsh.
Здесь подробно объясняется проблема.
Обходным решением является установка zsh во-первых, переход на zsh, а затем запустите и запустите ohmyzsh так же, как и раньше.
Пример с помощью wget:
sudo apt install zsh
apt-get install git-core
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
ohmyzsh сообщит, что он успешно установлен с этот или аналогичный вывод:
--2018-05-08 18:44:07-- https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [following]
--2018-05-08 18:44:07-- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.44.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3941 (3.8K) [text/plain]
Saving to: ‘STDOUT’
- 100%[==========================================================>] 3.85K --.-KB/s in 0s
2018-05-08 18:44:07 (57.9 MB/s) - written to stdout [3941/3941]
Cloning Oh My Zsh...
Cloning into '/home/me/.oh-my-zsh'...
remote: Counting objects: 858, done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 858 (delta 16), reused 780 (delta 10), pack-reused 0
Receiving objects: 100% (858/858), 572.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (16/16), done.
Checking connectivity... done.
Looking for an existing zsh config...
Using the Oh My Zsh template file and adding it to ~/.zshrc
I can't change your shell automatically because this system does not have chsh.
Please manually change your default shell to zsh!
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
Если вы хотите изменить оболочки, вы можете сделать это, выпустив команды
chsh -s `which zsh`
sudo reboot
Возможно, перезагрузка может не потребоваться, выйдите из системы и вернитесь назад.
Чтобы вернуться к оболочке по умолчанию, просто введите команду
chsh -s /bin/bash
Источники:
https://github.com/robbyrussell/oh-my-zsh/issues/227#issuecomment-825773
man chsh