Новое в bash скриптах здесь. У меня есть папка (месяц), которая содержит больше папок (/ month/jan,/month/feb,/month/mar и т. Д.), И в этих папках есть .txt-файлы (Sales11.txt, Sales17.txt и т. Д.).). Эти текстовые файлы содержат штат ID номера и их результаты продаж в процентном например Sales11.txt содержаниеПоиск в файлах .txt в разных папках для определенной строки
20456 78
20512 46
20498 67
20645 88
Ищу искать через эти файлы .txt для персонала идентификационного номера и когда это существует, чтобы сделать текстовый файл в папке/персонале сотрудников/20512 (которые уже существуют) по имени Jan.txt или в зависимости от того, в каком месяце он произошел. Содержимое файла Jan.txt будет именем файла продаж и процентом , В каждом месяце может быть более одного события продаж.
Пример выходного файла будет/сотрудников/20512 файл с именем Jan.txt, которые содержат бы
Sales11 46
Sales17 98
Я думаю, что нужно включать, если цикл и использовать массив для поиска по разным папкам и в этом случае используйте функцию grep для поиска идентификатора персонала.
Я не 100%, в каком порядке они должны быть включены и как использовать несколько разных массивов в одном скрипте, если это возможно. Моя первая попытка ниже.
while read STAFFID ; do
ARRSTAFF=($STAFFID)
ARRMON=($MONTHS)
ARRSALE=($SALES)
if [ grep -r “/month/${ARRMON}/${ARRSALE}.txt” -e “${ARRSTAFF}” ]; then
echo “${ARRSALE[0]} ${ARRSALE[1]}” >> Staff/${ARRSTAFF[0]}/${ARRMON}.txt
fi
done < contents/Staff.txt
Пожалуйста, взгляните на [edit-help] (http://stackoverflow.com/editing-help). – Cyrus
Можете ли вы использовать find, потому что тогда вы можете сделать что-то вроде 'find. -name * .txt -exec echo {} \; -exec grep -o "$ ID" {} \; ' – redxef
Есть ли идентификаторы персонала среди данных, которые не отображаются в Staff.txt? –