ищет команду для предварительного выполнения команды на основе критериев - PullRequest
0 голосов
/ 13 октября 2011

Я ищу команду (или способ выполнения) следующее:

echo -n 6 | doif -criteria "isgreaterthan 4" -command 'do some stuff'

Эхо-часть, очевидно, будет исходить из более сложной строки команд bash. По сути, я беру фрагмент текста из каждой строки файла, и если он появляется в другом наборе файлов больше, чем x (скажем, 100), он будет добавлен в другой файл.

Есть ли способ как-нибудь выполнить такой обман с помощью awk? Или есть другая команда? Я надеюсь, что есть какая-то команда стиля xargs, чтобы сделать это в том смысле, что часть -I% будет значением для проверки критериев, а все последующее будет командой для выполнить.

Спасибо за понимание.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Это возможно, хотя я не вижу причины, по которой вы бы это сделали ...

function doif
{
  read val1
  op=$1
  val2="$2"
  shift 2
  if [ $val1 $op "$val2" ]; then
    "$@"
  fi
}

echo -n 6 | doif -gt 3 ls /
0 голосов
/ 13 октября 2011
if test 6 -gt 4; then
 # do some stuff
fi

или

if test $( echo 6 ) -gt 4; then : ;fi

или

output=$( some cmds that generate text)
# this will be an error if $output is ill-formed
if test "$output" -gt 4; then : ; fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...