Изменение имени файла и добавление в него строки

У меня есть ряд файлов, как показано ниже:

000_0123
000_0234
000_0345
000_0456 
000_0678 
000_0890
000_01123
000_01234

Я хочу изменить имена на:

000_123
000_234
000_345
000_456 
000_678 
000_890
000_1123
000_1234

и я хочу добавить первую строку в каждом файле как "#include<conio.h>". Может кто-нибудь мне помочь?

1 ответ

Решение

Чтобы добавить свою строку в начало каждого файла, который вы можете сделать

for i in 000*; do sed '1i#include<conio.h>' "$i"; done

1i означает вставить это в первой строке (до существующей первой строки). Существующая первая строка становится строкой 2. Предупреждение: эта команда не будет выполнена (ничего не делать) для пустых файлов.

Содержимое всех файлов с добавленной строкой будет отображаться в терминале один за другим. Если это выглядит правильно, то сделайте еще раз с -i изменить файлы на месте

for i in 000*; do sed -i '1i#include<conio.h>' "$i"; done    

Если вы просто хотите удалить ведущий 0 после _ вы могли бы использовать rename переименовать файлы...

rename 's/0_0/0_/' 000*
Другие вопросы по тегам