Я читал книгу по bash, и нашел то, что мне нужно!
typ1_files=(words/*/*1.txt)
typ2_files=(words/*/*2.txt)
for ((i=0;i<=${#typ1_files[@]};i++)); do
awk -f corpus_vs_flexion.awk "${typ1_files[i]}" "${typ2_files[i]}"
done
Вы можете использовать sh -c
в своей команде find -exec
, тогда у вас будет больше контроля, например. сделать что-то подобное:
find... -exec sh -c '
target="/u01/ABC/$(basename "$(dirname "$1")")"
mkdir -p "$target" && cp --backup "$1" "$target"
' find-sh {} \;
Вы можете cd
войти в целевой каталог и запустить оттуда команду find
:
cd /tmp/data; find. -type f -name "*.txt" -exec cp --parents {} /u01/ABC/ \;
Если вам нужно вернуться в исходный рабочий каталог, вы можете после этого выполнить cd -
или запустить команду в подоболочке:
(cd /tmp/data; find. -type f -name "*.txt" -exec cp --parents {} /u01/ABC/ \;)