Как будет выглядеть скрипт для замены \ на / во многих файлах? - PullRequest
1 голос
/ 12 февраля 2010

Да, это действительно ленивый вопрос, но я полагаю, что это проблема, которая возникает у людей достаточно часто, чтобы кому-то здесь было что-то написанное, чтобы поделиться им.

У меня есть тонна файлов C с операторами #include, использующими относительные пути Windows. Я работаю над компиляцией кода в других операционных системах (немедленно, на моей машине для разработки OS X) и мне нужно заменить все обратные косые черты на прямые косые черты в этих операторах include. Итак, от чего-то вроде #include "libs\helper.h" до #include "libs/helper.h".

Ответы [ 3 ]

2 голосов
/ 12 февраля 2010
sed  '/^[ ]*#[ ]*include/ s:\\:/:g'

Это должно быть довольно надежно, так как должно охватывать любой допустимый формат #include, но не что-нибудь еще.

1 голос
/ 12 февраля 2010

у вас должен быть bash / awk / sed в OS X

for cfile in *.c
do
  awk '/#include/{gsub(/\\/,"/")}1' cfile >temp
  mv temp cfile
done

или

 sed -i.bak '/#include/s/\\/\//g' *.c
0 голосов
/ 12 февраля 2010

Sed - это путь вперед, поэтому сделайте это на своем Mac.

sed '/^#include/s/\\/\//g'

...