Из-за исходного форматирования вашего вопроса казалось, что вам не хватает символа '#' в объявлении оболочки. Однако фактическая ошибка была вызвана отсутствием / в пути bash.
Это правильный способ определить вашу оболочку в скрипте bash:
#!/bin/bash
Предполагая, что GNU sort
, вы могли бы сделать что-то вроде:
< abc.csv awk -F '|' -v OFS='|' '
{print $1, substr($2, 1, 5), $3, substr($4, 1, 5)}' |
sort -t '|' -k 2,2 -k4,4r | sort -t '|' -muk2,2
То есть используйте sort -mu
вместо uniq
, где вы можете uniq
на основе частей строки.