Попробуйте:
find . -type f -name "*.txt" -printf '%h\n' | sort | uniq
Это работает следующим образом:
найти . -тип f - имя "*.txt" -printf '%h\n'
- найдите все файлы, которые заканчиваются на *.txt
и распечатайте его каталог (%h
) с последующей новой строкой.
| sort
- сортируйте каталоги
| uniq
- удаляйте дубликаты
Попробуйте это. И немного поиграйте с этим.
echo -n "Press enter to use \"$in\" or enter a new value: "
read userInput
if [[ -n "$userInput" ]]
then
in=$userInput
fi
echo ... I will use $in.
Проверка ошибок ( test -d
и т. Д.) Зависит от вас ....
read
встроен в bash, поэтому вы можете получить помощь с помощью команды помогите прочитать
(будьте осторожны, потому что вы, вероятно, получите результаты как для read
, так и для readarray
, поэтому будьте осторожны, какой текст справки вы читаете ing). Чтение справки покажет вам дополнительные параметры, такие как те, которые предлагает использовать @Costas:
read -i $in -p "Press enter to use \"$in\" or enter a new value: " in