попробуйте это:
grep -R 'mystring' . | cut -d: -f 1 | uniq| xargs -n 1 -I {} -t -i ksh -c "touch /tmp/$(basename {})"
Проблема состоит в том, что обратные галочки расширены слишком рано (т.е. не однажды для каждого аргумента, отправленного в xargs). Мог бы быть лучший путь, но необходимо смочь сойти с рук явный цикл удара:
grep -R 'mystring' . | cut -d: -f 1 | uniq | while read f; do touch "/tmp/`basename $f`"; done
sh
вместоksh
работы также. – daniel kullmann 17.07.2012, 15:01