Проблема при переименовании файла с шаблоном файла в unix

В рамках нашего процесса мы получаем входной файл в формате .gz. Нам нужно разархивировать этот файл и добавить суффикс в конце файла. Входной файл имеет метку времени, поэтому я пытаюсь использовать фильтр при распаковке и переименовании этого файла.

Имя входного файла:

Mem_Enrollment_20200515130341.dat.gz

Шаг 1. Разархивируйте этот файл: (работает как положено)

gzip -d Mem_Enrollment_*.dat.gz

вывод:

Mem_Enrollment_20200515130341.dat

Шаг 2. Переименование этого файла: (проблемы при переименовании)

Опять же, я использую шаблон, но я знаю, что в данном случае это не сработает. Итак, что мне делать, переименовать этот файл?

mv Mem_Enrollment_*.dat Mem_Enrollment_*.dat_D11

вывод:

Mem_Enrollment_*.dat_D11

ожидаемый результат:

Mem_Enrollment_20200515130341.dat_D11

person Praveenks    schedule 27.05.2020    source источник


Ответы (2)


пытаться

for fn in Mem_Enrollment_*.dat
do 
mv ${fn} ${fn}_D11;
done
person Digvijay S    schedule 27.05.2020

С помощью только datastage вы можете зациклить вывод ls из этапа выполнения команды через «ls Mem_Enrollment_*.dat.gz», а затем использовать @FM в качестве разделителя при зацикливании выходного списка. Затем вы можете разбить gzip и переименовать его в две отдельные команды, что поможет улучшить читаемость вашей работы.

Единственное предостережение здесь заключается в том, что этап Start Loop не принимает @FM в разделителе из-за некоторой внутренней фанки внутри Datastage. Поэтому вам нужно установить пользовательскую переменную, равную ей, и передать ее метке.

person William Pearsall    schedule 27.05.2020