Você pode tentar analisar a saída do seu programa com sed e executar os comandos:
$(./YOUR_PROGRAM | sed s/^.*==/rm/ | sed s/\ \(.*//)
será executado (do seu exemplo)
rm new_GS_calculation/selected/POSCAR_0011
rm new_GS_calculation/selected/POSCAR_0022
rm new_GS_calculation/selected/POSCAR_0027
rm new_GS_calculation/selected/POSCAR_0027
rm new_GS_calculation/selected/POSCAR_0037
sed funciona com a seguinte sintaxe:
sed s/string1/string2/
que substitui string1 por string2 .
O que está acontecendo aqui é:
- a saída do seu programa é enviada para
sedcom o primeiro canal| - para cada linha de saída,
seddesde o início (marcado por^) para o sinal==e o substitui pelas letrasrm. isto envia o resto da linha para outra chamadasedcom um segundo cano -
sedagora procura e remove um espaço seguido por uma esquerda parênteses, denotado por\ \(, e qualquer coisa que se segue, denotada por.*. - o comando inteiro é empacotado em
$(...), então o bash executa o saída, que neste caso, uma string derm new_GS_calculation/...comandos.