如何以每個帶擴展名.cc和.h的文件遞歸地替換另一個模式?不知道我是否需要阻止它進入.svn目錄。在linux/osx上搜索並替換整個項目
第一次嘗試
#!/bin/bash
for file in `find . -name '*.cc' -or -name '*.h'`; do \
sed -e s/$1/$2/g -i temp $file
done
如何以每個帶擴展名.cc和.h的文件遞歸地替換另一個模式?不知道我是否需要阻止它進入.svn目錄。在linux/osx上搜索並替換整個項目
第一次嘗試
#!/bin/bash
for file in `find . -name '*.cc' -or -name '*.h'`; do \
sed -e s/$1/$2/g -i temp $file
done
如果你的項目linux平臺下的管理,你可以做某事像在bash裏面:
for file in `find . -name '*.cpp' -or -name '*.h'`; do \
cat $file | sed s/$1/$2/g > tmp
mv tmp $file
done
每個SVN文件中有「*鹼基」擴展,使所有的人都將保持不變。該腳本只會影響* h和* cc文件。
您可以搜索,並通過在Eclipse項目資源管理器中的某些文件使用正則表達式,例如替換。我確信有很多工具可以做到這一點,但Elipse首先想到。
要做到這一點,你需要調用「搜索」對話框中,將你的模式在搜索字段中,指定使用通配符,然後按「替換」的擴展,
不起作用。我究竟做錯了什麼? #!/ bin/bash 用於文件查找。 -name'* .cc'-or -name'* .h'; \ sed -i s/$ 1/$ 2/g $文件 完成 – 2010-01-07 23:12:35
您在$ file之後和'done'命令之前忘記了分號。 分號是必需的,因爲您的命令在一行中。 這是正確的版本: #!/ bin/bash用於文件查找。 -name'* .cc'-or -name'* .h'; do \ sed -i s/$ 1/$ 2/g $ file; DONE – kokosing 2010-01-09 10:09:23