Однострочник для подсчета строк, слов и символов в любом репозитории.
Добро пожаловать в выпуск №13 журнала One Minute Better D, где вы станете более успешным программным обеспечением. разработчику, читая короткие крупицы знаний по одной минуте за раз.
⏮️ 🔛 ⏭️
ПРОБЛЕМА
Наш технический менеджер спросил нас об общем количестве линий на нескольких хранилищах компании. Как мы можем узнать эту информацию?
РЕШЕНИЕ
Мы собираемся использовать команду git ls-files
и направить ее вывод в wc
с помощью xargs
.
- В качестве примера репозитория мы создадим новый проект с помощью superplate.
npx superplate-cli my-app
2. После создания мы переходим в каталог репо.
cd my-app
3. Теперь мы можем запустить git ls-files
, чтобы рекурсивно просмотреть все версии файлов в репозитории.
git ls-files # .babelrc # .eslintignore # .eslintrc # .gitattributes # ...
4. Однако мы также хотим видеть количество строк в каждом файле. Мы собираемся направить вывод git ls-files
в wc
, используя xargs
.
git ls-files | xargs wc # 1 4 30 .babelrc # 1 2 26 .eslintignore # 25 37 600 .eslintrc # 1 2 12 .gitattributes # ... # 25891 49458 1219057 total
Здесь мы видим:
- 1-й столбец: количество строк в этом файле.
- 2-й столбец: количество слов в этом файле.
- 3-й столбец: количество символов в этом файле.
И в последней строке информация об общем количестве файлов.
Итак, в нашем репозитории 25891 строка.