Bash скрипт сохраняет CSV в массиве и ищет часть строки - PullRequest
0 голосов
/ 22 ноября 2018

после редактирования моего скрипта я хотел бы вкратце объяснить, что я хочу сделать:

  1. Проверить, находятся ли файлы в папке
  2. Посмотрите начало имени файла
  3. поиск файла менее 1 часа
  4. возьмите файл и выполните sqlldr .. если это удастся переместить файл в другую папку ... если не отправить письмо

Этомой сценарий, может кто-нибудь сказать мне, если это будет работать?Я не уверен в синтаксисе, а также не уверен, если номер.3 и 4. отправка почты работает следующим образом.

    #!/bin/sh

    #check if files are in folder
    declare -a arrCSV   #create array
    for file in *.csv
    do
    arrCSV=("${CSV[@]}" "$file")
    done

    shopt -s nullglob
    for file in read*.csv; do
    #run on all files starting with "read" and ending with ".csv" 
  for find $LOCATION -name $file -type f -mmin -60 do
    if
    sqlldr read*.csv 
then mv "$file" "$HOME/fail/" ;
else{ echo "Failed to load" | mail -s "FAIL" email@email.com}
done
    done

    for file in write*.csv; do
    #run on all files starting with "write" and ending with ".csv" 
      for find $LOCATION -name $file -type f -mmin -60 do
 if
sqlldr write*.csv 
then mv "$filen" "$HOME/unisem/fail/" ;
else { echo "Failed to load 2" | mail -s "FAIL" email@email.com}
done
    done

1 Ответ

0 голосов
/ 22 ноября 2018

Вам не нужен массив, если файлы read ... и write ... могут быть обработаны в любом порядке:

shopt -s nullglob
for file in read*.csv; do
    # run on all files starting with "read" and ending with ".csv" 
    sqldr ...
done
for file in write*.csv; do
    # run on all files starting with "write" and ending with ".csv" 
    sqldr ...
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...