Поскольку вы знаете имя, которым нужно оперировать, почему бы не вынести его в переменную и не передать переменную в STDIN команды cut
, что можно сделать таким образом в bash, ksh или zsh:
% dir='140905_M01771_0112_000000000-ABBYT'
% cut -d_ -f3 <<<"$dir"
0112
Или если вы знаете, что в именах каталогов будет по крайней мере три _
s и один -
, то простая конструкция for
над именами подойдет:
for dir in *_*_*_*-*; do cut -d_ -f3 <<<"$dir"; done
Согласно инструкции, переключатель --rcfile
выполняет задачу в интерактивном режиме.
--rcfile file
Execute commands from file instead of the standard personal initialization file ~/.bashrc if the shell is interactive
Кажется, мы можем сделать вывод, что переменная окружения BASH_ENV
выполняет то же самое в не -интерактивном режиме.
BASH_ENV
If this parameter is set when bash is executing a shell script, its value is interpreted as a filename containing commands to initialize the shell, as in ~/.bashrc. [...]