Передающие опции к подкомандам в ударе

Добавьте эти настройки к Вашему .bashrc:

shopt -s extglob globstar

extglob включает некоторые дополнительные шаблоны, включая @(…) создайте для разъединения. globstar включает **/ который пересекает каталоги рекурсивно.

Затем Вы не должны использовать find:

sed -i "$replace" mydirectory/**/*.@(txt|read|po)

В zsh Вы не нуждаетесь ни в какой специальной опции, просто работаете

sed -i $replace mydirectory/**/*.(txt|read|po)

Если у Вас есть много файлов, можно видеть, что сообщение как “предел длины командной строки превысило”. Но предел очень высок в современных системах Linux, Вы вряд ли встретитесь с ним.

3
12.12.2013, 02:10
2 ответа
echo ${FILENAME_ARGS} | grep -e - | sort >options
echo ${FILENAME_ARGS} | grep -v -e - >files
3
27.01.2020, 21:16

В Вашей обуви я записал бы сценарий, который берет все Ваши аргументы и назначает им переменными, затем выполнитесь | очень | долго | канал с переменными аргумента, которым заглядывают в случае необходимости, т.е.

$ ./wrapper.sh -a firstoption -b secondoption -c thirdoption

$ cat wrapper.sh

#!/bin/bash

#trap variables with case statement here
for arg in "$@" ; do
    case "$arg" in
      -a)
        alpha=$2
        shift
        ;;
      -b)
        bravo=$2
        shift
        ;;
      -c)
        charlie=$2
        shift
        ;;
     esac
done
# at this point: $alpha=firstoption
#                $bravo=secondoption
#                $charlie=thirdoption

echo "Better grab a coffee man, this could take a while...."
echo "STUFF" | some $alpha $bravo | big -c $bravo -Z $charlie | pipeline -yx $charlie $alpha $bravo| sort -N $charlie -options | etc.${bravo}.${alpha} >temp.${charlie}
2
27.01.2020, 21:16

Теги

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