Использование comp.class
в качестве разделителя полей (или попытка расширения переменной заключена в одинарные кавычки в вашем коде )для awk
не имеет большого смысла для меня, как и запуск нескольких awk
программ другое в трубопроводе.
Насколько я понимаю, вам нужно имя файла каталога, содержащего файл comp.class
.
Это делает то:
topdir='/D/Practice/HelloWorldSagar'
filename='comp.class'
find "$topdir" -type f -name "$filename" \
-exec sh -c 'basename "$(dirname "$1")"' sh {} ';'
Ищет все файлы с именем comp.class
в диапазоне /D/Practice/HelloWorldSagar
или ниже. Когда он найден, короткий сценарий оболочки просто выводит базовое имя (часть имени файла пути )пути к каталогу найденного имени пути.
В качестве альтернативы найдите каталоги,а затем отдельно проверить наличие файла:
find "$topdir" -type d \
-exec test -f {}/"$filename" ';' \
-exec basename {} ';'
Это проверяет наличие comp.class
во всех найденных каталогах в $topdir
(, включая сам $topdir
). Когда файл найден, печатается базовое имя найденного каталога.
Разница между двумя подходами заключается в том, что второй подход также обнаруживает символическую ссылку с именем comp.class
, которая указывает на обычный файл.
Связанные:
На всякий случай это не базовое имя каталога, который вам нужен, а относительный путь под$topdir
:
find "$topdir" -type f -name "$filename" \
-exec sh -c 'd="$(dirname "$2")"; printf "%s\n" "${d#$1/}"' sh "$topdir" {} ';'
Это разновидность первого решения, которое извлекает имя каталога в переменную d
, а затем печатает значение пути к этому каталогу с удаленным $topdir
в начале.
Хороший способ — просто использовать xsetwacom. (пример на французском:http://doc.ubuntu-fr.org/wacom)
-Используйте
xrandr
для получения списка экранов
-Используйте
xsetwacom list dev
для идентификации устройств [ручка, ластик...]
И
xsetwacom --set "Name of Wacom device [pen,eraser...]" MapToOutput "Name of the tablet screen"
Для каждого устройства
Удачи