Как я открываю все файлы в текущем каталоге и все подкаталоги с помощью энергии?

Вы могли сделать:

eval paste '<(sort -n ../data/file-'{A,B,C}'.dat)'

Или автоматизировать его как функцию

sort_paste() {
  local n i cmd
  n=1 cmd=paste
  for i do
    cmd="$cmd <(sort -n -- \"\${$n}\")"
    n=$(($n + 1))
  done
  eval "$cmd"
}
sort_paste  ../data/file-{A,B,C}.dat

(в некоторых ksh реализации, необходимо заменить local с typeset)

Адаптироваться к любой произвольной команде, (и доказать это eval может быть безопасным при надлежащем использовании) Вы могли сделать:

xproc() {
  local n i cmd stage stage1 stage2 stage3
  cmd= xcmd= stage=1 n=1
  stage1='cmd="$cmd \"\${$n}\""'
  stage2='xcmd="$xcmd \"\${$n}\""'
  stage3='cmd="$cmd <($xcmd \"\${$n}\")"'
  for i do
    if [ -z "$i" ] && [ "$stage" -le 3 ]; then
      stage=$(($stage + 1))
    else
      eval 'eval "$stage'"$stage\""
    fi
    n=$(($n + 1))
  done
  eval "$cmd"
}

xproc paste '' sort -n -- '' ../data/file-{A,B,C}/dat
8
09.08.2014, 10:07
2 ответа

С zsh :

vim ./**/*(.)

Другие оболочки:

find . \( -name '.?*' -prune \) -o -type f -exec vim {} +

Чтобы открывать только (не скрытые) обычные файлы (не каталоги, символические ссылки , трубы, устройства, двери, розетки ...).

vim ./**/*(D-.)

Другие оболочки, GNU find :

find . -xtype f -exec vim {} +

Также для открытия скрытых файлов (и обхода скрытых каталогов) и символических ссылок на обычные файлы.

И:

vim ./***/*(D-.)

другие оболочки:

find -L . -type f -exec vim {} +

также для просмотра символических ссылок при просмотре подкаталогов.

Если вам нужен только один уровень подкаталогов:

vim ./* ./*/*

Обратите внимание, что это хорошая привычка ставить перед глобусами префикс ./ в случае, если некоторые имена файлов начинаются с - или + .

(конечно, find также работают в zsh . Обратите внимание, что они могут запускать несколько экземпляров vim , если список файлов большой).

8
27.01.2020, 20:12

В bash с shopt -s extglob :

for file in **/**; do [[ -f "$file" ]] && vim "$file"; done

Обратите внимание, что согласно комментарию Стефана до Bash 4.3 это будет следовать за любыми символическими ссылками в покрытых каталогах.

1
27.01.2020, 20:12

Теги

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