我在目录中有很多.c文件和.h文件。我需要在所有.c的开头添加注释,如“// INFO:这是由raj编写的C文件”。你能告诉我如何使用脚本吗?
答案 0 :(得分:5)
听起来像是一次性任务,所以一个简单的方法是做这样的事情:
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
当然,请务必先备份文件。
答案 1 :(得分:3)
使用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 :(得分:2)
快速单行:
perl -pi -we 'local $/; s#^#//comment\n#;' *.c *.h
说明:
-pi
进行就地编辑(如果您想要备份:-i<extension>
,
例如-i.bak
)。$/
设置为undef来读取整个文件)
影响第一线。