POSIXly (за исключением команды zip
, очевидно):
find. -path./s3 -prune -o -type d -name data -exec sh -c '
for dir do
(cd "$dir" && zip -r Archive.zip.)
done' sh {} +
Или сzsh -o extendedglob
:
for dir (./**/data~*/s3/*(/N)) (cd $dir && zip -r Archive.zip.)
Или, если вы не хотите рекурсивно искать папки data
:
for dir (./^s3/data(/N)) (cd $dir && zip -r Archive.zip.)
Или, чтобы быть еще более конкретным (здесь нет необходимости extendedglob
):
for dir (s[124]/data(/N)) (cd $dir && zip -r Archive.zip.)
С гибкими функциями GNUawk
:
gawk -i inplace -v repl="Replacing_values.txt" 'FNR==1{ getline $5 < repl }1' *.asc
-i inplace
-позволяет изменить входной файл (с )в -место -v repl="Replacing_values.txt"
-переменная, сохраняющая имя файла со значениями замены FNR==1
-рассматривать только 1-ю строку каждого входного файла getline $5 < repl
-прочитать следующую запись из файла repl
и присвоить ее 5-му столбцу$5