Как добавить 2 строки в начале всех .c файлов в каталоге, используя shell или perl - PullRequest
3 голосов
/ 24 октября 2011

У меня есть много файлов .c и .h в каталоге. Мне нужно добавить комментарий в начале всех .c, таких как "// INFO: Это C-файлы, написанные raj". Подскажите, пожалуйста, как это сделать с помощью скрипта?

Ответы [ 3 ]

5 голосов
/ 24 октября 2011

Похоже на одноразовую задачу, поэтому простой подход - сделать что-то вроде этого:

for x in *.c *.h; do
    echo "//INFO This is C Files written by raj" > $x.temp-file
    cat $x >> $x.temp-file
    mv $x.temp-file $x
done

Конечно, сначала убедитесь, что вы сделали резервную копию своих файлов.

3 голосов
/ 24 октября 2011

С sed:

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
 sed '1i\//INFO This is C Files written by raj' {} \+

С awk:

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
awk ' NR == 1 { print "//INFO This is C Files written by raj"; } {print;}'
2 голосов
/ 24 октября 2011

Быстрая однострочная:

perl -pi -we 'local $/; s#^#//comment\n#;' *.c *.h

Объяснение:

  • Использование редактирования на месте с -pi (если вы хотите создать резервные копии: -i<extension>, например, -i.bak).
  • Используйте режим slurp (прочитайте весь файл, установив $/ в undef), чтобы влиять только на первую строку.
  • Используйте глобус оболочки для поиска файлов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...