如何将cscope与包含空格的路径一起使用

问题描述:

有一些文件夹包含空格,因此无法使用cscope对这些文件夹编制索引。如何将cscope与包含空格的路径一起使用

我可以请你帮忙解决这个问题,或者有什么建议。

感谢 朱利叶斯·


感谢您的答复。

我的步骤来使用cscope像下面

  • 发现。 -name'* .scala'> cscope.files
  • cscope -b
    在此步骤。我看到的消息表明找不到文件:
    cscope:无法找到文件/工作/项目/副本
    cscope:找不到文件
    cscope:无法找到文件fp/src/main/jav ....
    实际上fp的副本是一个文件夹。所以我认为cscope无法识别包含空间的文件夹。

我遇到了这个问题,当我试图用cscope.maybe使用Vim,我需要将此问题移到其他标记。

+1

您使用的Vim标签。这是因为你试图在Vim中使用':cscope'命令吗?如果是这样,你能显示你正在尝试的命令以及你得到的错误吗? – jamessan 2010-07-07 16:46:24

您可以使用find的-exec迫使周围的输出报价:

find . -name "*.scala" -exec echo \"{}\" \; > cscope.files 

您可能需要惹报价/转义,如果你从一个脚本这样做左右。

+0

这个答案需要1秒钟才能完成〜100个文件。我的答案需要1秒钟才能完成〜100,000个文件。 – webb 2016-03-03 16:03:37

+1

@webb:使用fprintf(Olivier Diotte的回答)当然似乎比我的天真提议更好地使用find。 – idbrii 2016-04-05 17:37:42

双引号文件名在cygwin中起作用,其中用反斜杠转义不起作用。

$ find $PWD -name "*.scala" | sed -e 's/^/"/g' -e 's/$/"/g' > cscope.files 
+0

sed's /.*/"&"/'稍快 – webb 2016-03-03 16:09:16

pydave的回答很慢。这样,花了0.10s,其中pydave的回答了14S:

find . -name "*.scala" | awk '{print "\""$0"\""}' > cscope.files 
+0

Kudos!快速工作 – Melon 2015-11-09 07:17:48

你可以把它简单地使用GNU找到至少,你可以使用该-printf-fprintf选择呢:

find . -type f -fprintf cscope.files '"%p"\n' 
+0

简化%h /%f到%p – webb 2016-03-03 15:59:38

+1

您的答案是最快的:比我的快8%,比sed快14%。 。 。和1000倍一样快EXE! – webb 2016-03-03 16:19:18