Как продублировать файл n раз, а затем создать функцию в.zshrc?

Попробуйте удалить условие and, удалите следующий код из вашей строки:

&& NR>=%-1
1
04.04.2021, 01:20
1 ответ

Определенно есть более простой способ сделать это надежно в zsh. Есть и более простой способ сделать это надежно в обычном sh :этот скрипт слишком сложен и ненадежен (предполагает, что все имена файлов имеют расширение, перезаписывает файлы без запроса, … ). Поскольку эта ветка посвящена zsh, я воспользуюсь возможностями zsh.

Модификаторы расширения истории и параметров rи eполезны для разделения имени файла между базовым именем и расширением. Однако имейте в виду, что они работают только тогда, когда файл имеет расширение .

Предупреждение :Непроверенный код.

function cpx {
  if (($# != 2)); then
    cat >&2 <<EOF
Usage: cpx FILENAME N
Make N copies of FILENAME.
EOF
    return 1
  fi
  local n=$2
  if [[ $n != <-> ]]; then
    print -ru2 "cpx: $n: not a number"
    return 1
  fi
  local prefix=$1 suffix= i
  # If there is an extension, put the number before the extension
  if [[ $prefix:t == ?*.* ]]; then
    prefix=$1:r
    suffix=.$1:e
  fi
  # If the part before the number ends with a digit, separate the additional
  # number with a dash.
  if [[ $prefix == *[0-9] ]]; then
    prefix+="-"
  fi
  # Copy foo.bar to foo1.bar, foo2.bar,...
  for ((i=1; i<=n; i++)); do
    cp -p -i -- $1 $prefix$i$suffix
  done
}
2
28.04.2021, 22:54

Теги

Похожие вопросы