Вот мой сценарий bash:

for next in `ls | grep -P -o "[a-zA-Z0-9]*" | grep -v "^c$" | grep -v "^obj$" | grep -v "^sh$"`
do
  mv "$next.c.obj" $next
done

Как видите, это безобразно. Он в основном удаляет расширение .c.obj из файлов (которые, кстати, попали туда, потому что я испортил предыдущий скрипт). Это работает, но не выглядит наиболее эффективным решением.

Дело уже сделано, поэтому, пожалуйста, не размещайте другие способы сделать это (переименовать или sed или awk).

Я просто хочу знать, можно ли это сделать, используя только grep и bash, но более элегантно.

0