我正在使用类似以下行的内容生成 ctags
find -iname '*.[hc]' -exec ctags -a --sort=no {} +
结果是标签没有排序。为此我正在使用
sort -u -o tags tags
我很好奇,这一切是否可以在 中完成find
?换句话说,我可以指示find
将其用于--sort=no
所有但最后一次调用 ctags,什么时候会使用--sort=yes
?
当前的方式已经足够了(无论如何ctags
都会在内部调用sort -u -o $TAGFILE $TAGFILE
),但我很好奇这是否可能。
答案1
我很确定find
做不到。如果-exec {}
您使用经典的 print-to- xargs
(并且文件名不包含 shell 特殊字符,例如空格、美元符号或引号,或者您不厌其烦地保护它们),您可以识别并“更正”最后一个组=行:
find -iname pattern | xargs echo ctags -a --sort=no | sed '$s/sort=no/sort=yes/' | sh
但正如您含蓄地问的那样,当您可以运行时为什么还要麻烦呢sort
?