сортировка файлов по разным каталогам для основного каталога

Вы можете легко полностью переназначить всю клавиатуру, включая все «специальные» клавиши. Если ваш Arch Linux использует Wayland, вам нужен xkb(, который требует некоторого чтения ), если он использует X, поэкспериментируйте с xmodmapи загрузите свой макет при входе в сеанс.

Погуглите немного, туториалов полно.

0
17.04.2020, 22:14
3 ответа

Можешь попробовать

find. -iname "*.out" -exec sh -c '
     f=${1##*/};
     f=${f%.out};
     d=./location/$f/;
     [ ! -d $f ] && mkdir -p $d;
     mv $1 $d'  sh {} \;

Если в путях к файлам нет пробелов

Прохождение

Найдите все свои .outфайлы и для каждого-exec.... \;

find. -iname "*.out" -exec sh -c '...script...` sh {} \; 

Конструкция

sh -c `...script......` sh {}

Каждое имя файла принимается как {}и передается обратно в сценарий как $1, где мы

Удалить путь к последнему каталогу /и сохранить какf

         f=${1##*/};

Удалить суффикс .out

         f=${f%.out};

Рассчитайте нужный каталог и сохраните его какd

         d=./location/$f/;

Создать каталог, если он не существует, вместе с любыми родительскими элементами-p

         [ ! -d $d ] && mkdir -p $d;

Сделай ход

         mv $1 $d'  sh {} \;
0
19.03.2021, 02:28
mv *SA_BA_W.out  /location/SA_BA_W;

mv *SA_DEA_W.out /location/SA_DEA_W

и так далее.

0
19.03.2021, 02:28

Вы можете создать каталоги один раз, используя команду ниже:

Создать под-каталоги

ls *.out | sed -Ee 's/[0-9]*([A-Za-z]+)_([0-9]*[A-Za-z]+[0-9]*)_W.out$/\1_\2_W/g' | awk ' { system("mkdir -p /location/" $0) }'

ИЛИ

find. -regextype awk -regex './([0-9]*[A-Za-z])+_([0-9]*[A-Za-z]+[0-9]*)_W.out' | sed -Ee 's/[0-9]*([A-Za-z]+)_([0-9]*[A-Za-z]+[0-9]*)_W.out$/\1_\2_W/g' | awk '{ system("mkdir -p /location/" $0) }'

ИЛИ

find. -regextype awk -regex './([0-9]*[A-Za-z])+_([0-9]*[A-Za-z]+[0-9]*)_W.out' | sed -Ee 's/[0-9]*([A-Za-z]+)_([0-9]*[A-Za-z]+[0-9]*)_W.out$/\1_\2_W/g' | xargs -I {} mkdir -p /location/{}

ВЫ МОЖЕТЕ ВЫПОЛНИТЬ ОБЕИ операции, используя приведенный ниже цикл for

Создание подкаталогов и перемещение файлов в соответствующие каталоги:

for i in $(ls *.out)
do
DIR_NAME=$(echo $i | sed -Ee 's/[0-9]*([A-Za-z]+)_([0-9]*[A-Za-z]+[0-9]*)_W.out$/\1_\2_W/g')
test -d /location/$DIR_NAME || mkdir /location/$DIR_NAME
mv $i $DIR_NAME
done
0
19.03.2021, 02:28

Теги

Похожие вопросы