Стоит добавить -типа f
в ответ DopeGhoti, чтобы избежать этой подделки .
результат.
find . -maxdepth 1 -exec basename "{}" \; | cut -d'-' -f1 | sort -u
.
4855
5355
5855
find . -maxdepth 1 -type f -exec basename "{}" \; | cut -d'-' -f1 | sort -u
4855
5355
5855
$
Если вы хотите сохранить аналогию с вашей первоначальной попыткой, вы можете использовать это (плохо, так как оно анализирует ls
хотя!)
ls -1 | grep ^....- | cut -c1-4 | sort --unique
Решение на основе awk, все еще анализирующее ls
ls -1 | awk -F- '{print $1}' | sort --unique
Нет реальной необходимости sort в каждом из этих случаев, поскольку вывод ls
уже отсортирован, поэтому можно просто использовать uniq
.
ls -1 | awk -F- '{print $1}' | uniq
решение, основанное на sed
ls -1 | sed 's/-.*//' | uniq
решение find / sed, которое позволяет избежать синтаксического анализа ls
find . -type f -printf "%f\n" | sed 's/-.*//g' | sort --unique
Если всегда 4 цифры перед "-", то это довольно элегантно
find . -type f -printf "%.4f\n" | sort -u
Звучит часто, просто перезапустите службу сетевого менеджера с помощью init или systemd, в зависимости от того, что применимо.
Обычно:
sudo service network-manager restart