Вы не можете объединить их с bash
(или POSIXly), необходимо сделать это на двух шагах.
i=${x#*/}; i=${i%%/*}
Это портативно к любой оболочке POSIX. Если бы Вам нужна мобильность к Оболочке Bourne (но почему Вы отметили бы свой вопрос / удар затем?) также в случае, если Вы портируете на Солярис и вынуждены использовать /bin/sh
вместо стандарта sh
там или портирование на 20-летние системы), Вы могли использовать этот подход (который будет работать также с оболочками POSIX):
IFS=/; set -f
set x $x
i=$3
(выше один из очень редких случаев, где имеет смысл уезжать, переменная закрыла кавычки).
Только для справки, с zsh:
print -rl -- x86-headers/*/C/populate.sh(:h:h:t)
(хвост головы главы файла).
Или для Вашего python
подход:
x=elf/C/populate.sh
i=${${(s:/:)x}[2]}
Можно сделать это в двух командах:
find A -name "*.log" -size -10485760c -exec cp {} B/ +
find A -name "*.log" -size +10485760c -exec cp -i {} B/ +
Первые файлы находок, меньшие, чем 10485760 и копии без разбора. Вторые файлы находок, больше, чем 10485760 и копии в интерактивном режиме, запрашивая каждую копию.
Поместите их в сценарий оболочки или функцию так, чтобы можно было выполнить ее с единственной командой, если Вам нравится.