我试图编写一个脚本来向我的.cpp文件添加一个商标标题。 我的解决方案如下。将脚本添加到文件的shell脚本
cat trademark.txt test.cpp > new_test.cpp && mv new_test.cpp test.cpp
但是,想知道是否有更好的方法来做到这一点。
我试图编写一个脚本来向我的.cpp文件添加一个商标标题。 我的解决方案如下。将脚本添加到文件的shell脚本
cat trademark.txt test.cpp > new_test.cpp && mv new_test.cpp test.cpp
但是,想知道是否有更好的方法来做到这一点。
您可以用awk像这样:
awk 'NR==FNR && !h {print;h=1;} NR!=FNR{print}' headerFile mainFile > tmpFile
mv tmpFile mainFile
使用vim/VI:
vim +'0r headerFile|wq' mainFile 2>/dev/null
使用GNU sed的:
sed -i.bak -e '2{x;G};1{h;rheaderFile' -e 'd}' mainFile
使用非GNU的sed:
HDR=$(head -1 headerFile) && sed -i.bak "1s/^/$HDR/" mainFile
如果你使用vim,请ultisnips 。它可以做到这一点,多更多。
例如,我已经定义了下面的代码片段到公共领域头添加到文件:
snippet pd "Public domain dedication" b
#
# Author: ${1:Roland Smith} ${2:<[email protected]>}
# \$Date: `!v strftime("%F %T %z")` \$
#
# To the extent possible under law, $1 has waived all copyright and
# related or neighboring rights to `!v expand('%:t')`. This work is published
# from the Netherlands. See http://creativecommons.org/publicdomain/zero/1.0/
endsnippet
要使用这个片段,我在VIM一行的开头插入pd
和命中<tab>
。这将展开代码段,在$Date$
标记中填写当前日期,并填充文件名(使用expand
)。然后突出显示作者的姓名,这是第一个变量,允许我在必要时更改它。这会自动更改该变量的所有其他实例。使用<ctrl>j
将我带到以下变量中,作者的电子邮件地址,如果需要也可以更改它。
您可以使用vimscript命令(在引号之间,前加!v
)。如果你的vim是用Python支持编译的,你也可以使用!p
的Python代码。
你现在正在做的事情是正确的。 –