Используя гибкость 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.

  1. Основные операции суммирования как числовых (например, сумма, минимум, максимум), так и текстовых (например, количество, первый, последний).
  2. Основные статистические операции, например, среднее, медиана, q1, q3, iqr, мода
  3. Основные операции преобразования данных, такие как группировка и транспонирование.

Хотя я использовал csvkit в прошлом для некоторых из вышеперечисленных операций, я подозреваю, что буду использовать datamash для выполнения этих операций в будущем.

Если вы обрабатываете данные, вам следует попробовать Datamash.

#разработчикблаженство