Use a manipulação de string :
for f in *.c; do gcc -Wall "$f" -o "${f%%.c}.out"; done
Não há necessidade de expressões regulares complicadas ou qualquer coisa que não seja um shell embutido aqui.
Eu preciso compilar todos os arquivos C em um diretório em saídas separadas ... ver exemplo
gcc -Wall program1.c -o program1.out
Como faço isso?
Use a manipulação de string :
for f in *.c; do gcc -Wall "$f" -o "${f%%.c}.out"; done
Não há necessidade de expressões regulares complicadas ou qualquer coisa que não seja um shell embutido aqui.