Сценарий Bash для сравнения списка переменных имен файлов из одного текстового файла в другой и выполнения действий в linux - PullRequest
0 голосов
/ 04 марта 2020

Моя цель - прочитать имена файлов в файле temp11 по одному и сравнить их с именами файлов в файле tj_mail.txt

, если он совпадает, ничего не делать, если нет, переместить файл из из пункта назначения в другой.

temp 11 имеет ab c .xlsx, а tj_mail.txt имеет /path1/path2/abc.xlsx

, так как они не совпадают, он должен выполнить операцию перемещения

cat /mae/SrcFiles/Target_Shellscript_Autodownload/Airtime_Activation/temp11 | while IFS="" read -r -d $'\0' file;
do
    read "${file?}"
    if grep -qF "$$file" /mae/scripts/tj_mail.txt;then
    :
    else
        mv $file /marketsource/SrcFiles/Target_Shellscript_Autodownload/Airtime_Activation/newthings
    fi
done

Нет ошибки, но ничего не делать, кажется, что не читает файл

1 Ответ

2 голосов
/ 04 марта 2020

Нет необходимости использовать read и grep. Используйте comm, чтобы сравнить два файла и получить отсутствующие файлы, и передать их в mv.

comm -23 <(sort /mae/SrcFiles/Target_Shellscript_Autodownload/Airtime_Activation/temp11) <(sort /mae/scripts/tj_mail.txt) | 
    xargs mv -t /marketsource/SrcFiles/Target_Shellscript_Autodownload/Airtime_Activation/newthings
...