awk 'substr($1,2)==substr($3,2) { print $0 > "file1" } substr($1,2) != substr($3,2) { print $0 > "file2" }' masterfile
С мастер-файлом, содержащим исходные данные, и с использованием функции substr awk, мы игнорируем первую букву первого и третьего полей, разделенных пробелами, оставляя нам числа для сравнения. Затем мы выполняем условные проверки этих номеров, помещая их в определенные файлы (file1 и file2 )соответственно.
Я пришел к этому, используяfind
:
find. -type f -name "*.msg" -exec bash -c 'DIRS=$(echo ${0} | cut -d'_' -f2); mkdir -p "${DIRS:0:4}/${DIRS:5:2}/${DIRS:7:2}"; mv "${0}" "${DIRS:0:4}/${DIRS:5:2}/${DIRS:7:2}"' {} \;