awkрешение:
awk -F'|' '{ for(i=6;i<=10;i++) print $1,$2,$3,$4,$5,$i,$11,$12,$13 }' OFS='|' file
Выход:
a|b|c|d|e|1|f|g|h
a|b|c|d|e|2|f|g|h
a|b|c|d|e|3|f|g|h
a|b|c|d|e|4|f|g|h
a|b|c|d|e|5|f|g|h
for(i=6;i<=10;i++)
-перебор ключевых полей Как заметил steeldriver, вполне вероятно, что ваш целевой пользователь использует csh или tcsh. Если вы хотите быть уверены в используемой вами оболочке, вызовите ее явно:
su - "$USER" -c \
"/bin/ksh -c 'export ORACLE_HOME=$ORA_HOME;export PATH=$ORA_HOME/bin:$PATH;sqlplus / as sysdba'"
Хотя (вспомогательная )оболочка будет содержать все (экспортированные )переменные среды из основной оболочки, она не будет содержать никаких (неэкспортированных )переменных оболочки из основной оболочки пользователя.
Вам все равно не нужно экспортировать. Просто беги:
su - $USER -c "ORACLE_HOME=$ORA_HOME;PATH=$ORA_HOME/bin:$PATH;sqlplus / as sysdba"
Параметр export
нужен только в том случае, если вам нужно, чтобы переменные наследовались любыми дочерними оболочками, запускаемыми вашей оболочкой. Здесь вы запускаете команду из той же оболочки, поэтому нет необходимости export
.
Но, как указано в комментариях, это не поможет, если sqlplus
нужно видеть эти переменные, только если их нужно установить, чтобы правильно найти sqlplus. Если это не помогло, попробуйте:
su - $USER -c "ORACLE_HOME='$ORA_HOME' PATH='$ORA_HOME/bin:$PATH' sqlplus / as sysdba"