Используя гибкость powershell с точки зрения его богатых команд, например, where-object, foreach-object и group-object, я обнаружил ограничения оболочки bash. Большинство возможностей, предлагаемых командами powershell, необходимо реализовать либо путем объединения других команд, либо запрограммировав их в bash. В частности, меня раздражает отсутствие поддержки на основе конвейера команд для выполнения основных операций, связанных с данными, например, суммирования чисел в файле, группировки значений в файле, получения частоты слов в файле.
Это изменилось сегодня, когда я узнал о datamash GNU, команде, которая выполняет основные числовые, текстовые и статистические операции над входными текстовыми файлами данных. Теперь вместо (seq 10 | tr '\n' '+' ; echo '0' ) | bc
для суммирования последовательности чисел я могу просто выполнить seq 10 | datamash sum 1
:)
Для моей цели я нашел наиболее полезной поддержку следующих операций в datamash.
- Основные операции суммирования как числовых (например, сумма, минимум, максимум), так и текстовых (например, количество, первый, последний).
- Основные статистические операции, например, среднее, медиана, q1, q3, iqr, мода
- Основные операции преобразования данных, такие как группировка и транспонирование.
Хотя я использовал csvkit в прошлом для некоторых из вышеперечисленных операций, я подозреваю, что буду использовать datamash для выполнения этих операций в будущем.
Если вы обрабатываете данные, вам следует попробовать Datamash.
#разработчикблаженство