Удалите файлы XML, когда это> n Файлы подсчитаны для каждого набора имени файлов

Я нашел решение:

Мне нужно было установить alsa-oss с помощью apt-get install alsa-oss.

Чтобы иметь возможность использовать гарнитуру, мне нужно установить alsamixergui с помощью apt-get install alsamixergui.

Вы можете посмотреть его описание на этом сайте: https://wiki.debian.org/ALSA

0
16.08.2018, 12:05
1 ответ

С помощью findи Bash Offset Expansion${parameter:offset:length}вы можете сделать:

find -type f -execdir bash -c 'printf "%s\n" "${@:1:${#@}-12}" ' _ {} +
./Wf_ABHGD_AFFGF_DFDF_201101211221.XML
./Wf_ABHGD_AFFGF_DFDF_201202211222.XML
./Wf_ABHGD_AFFGF_DFDF_201304411223.XML
./Wf_ABHGD_AFFGF_DFDF_201406611224.XML

${#@}возвращает общее количество файлов (или аргументов в среднем ).

повторите описанное выше для каждого набора файлов, который у вас есть, указав шаблон в опции -nameкоманды find выше.

Или получить шаблоны по скрипту:

# !/bin/bash

allFILEs=(*.XML)
PATTERNs=$(printf "%s\n" "${allFILEs[@]%_*}" |sort -u)

for pattern in ${PATTERNs[@]};
do
    find -type f -name "*${pattern}*" -execdir bash -c '
        printf "%s\n" "${@:1:${#@}-12}"' _ {} + 2>/dev/null;
done

измените printfнаrmfind...команду ), когда вы протестировали и посмотрите, какие файлы (с )удаляются.

0
28.01.2020, 04:13

Теги

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