Tente esse cara =):
sed -n 'line_num p' | bash
ou
"$(sed -n 'line_num p')"
Às vezes, preciso executar um único comando que esteja em um script de shell.
Eu já sei que sed -n 'line_num p'
pode imprimir essa linha. Mas como exec eu que imprimi linha específica como um comando?
Se você está fazendo isso de forma interativa, pode escrever a linha no histórico bash:
history -s "$(sed -n 'line_num p')"
Em seguida, pressione ↑ Enter para inserir a linha no buffer readline e executá-la; que lhe dá a chance de olhar para a linha antes que seja tarde demais.
Você pode fazer ...
{ head -n"$((NUM-1))"; IFS= read -r line; } </path/to/script >/dev/null
eval "$line"
Isso obterá apenas a linha $NUM
do seu script na variável do shell $line
e, em seguida, avaliará como um comando no shell atual.
Outra maneira de fazer isso pode parecer:
</path/to/script sed "${NUM}q;d" >/tmp/"$$"
. /tmp/"$$" ; rm /tmp/"$$"
Você está editando seu script com o vim (vi no Linux)? No vi adicionar um mapeamento:
:nmap <F4> Y:!<C-R>"<C-H><CR>
e depois quando você está na linha interessante no vi pressione F4
No bash você pode executar o seguinte comando:
for line in $(cat file.txt); do command $line; done
Tags command-line bash