0

我提前为这个问题道歉,但我现在真的被困住了,我只是祈祷那里有人可以帮助我。

我有一系列 c 文件,我需要在大约 100 个子目录中一次检查一个,每个子目录名为 balance.d、balancer.c 或 balancer.c。我已经得到了他们使用的列表find . -name "balance*",我可以选择其中一个使用sed -n [NUM]p。这是一个使用 Cygwin 的 Windows 环境,这些目录都是通过 Dropbox 与其他人共享的。路径通常涉及空格,我遇到了麻烦。

我知道 cygpath -sw 会给我没有空格的路径。我的最终目标是能够一次抓取每个文件gcc path/to/file.c -o ./a.exe

现在,我有

cygpath -sw $(echo find .-name "balance*" | sed -n 2p | awk '{gsub(/ /,"\ ")}8')

...但是 cygpath 不会让我过去的空间。它给了我一个错误

awk: cmd. line:1: warning: escape sequence `\ ' treated as plain ` '

4

1 回答 1

1

在您的命令替换周围加上引号,否则它的结果将进行工作拆分

也不需要你对 AWK 部分所做的事情。

您正在echo使用以下参数调用该命令:

[find] [.] [-name] [balance*]

您希望它调用 find 命令的内容:

cygpath -sw "$(find . -name "balance*" | sed -n 2p)"
于 2016-03-20T20:13:46.813 回答