带有空格的 sed 目录文件名

带有空格的 sed 目录文件名

我正在编写一个脚本,但即使在谷歌的帮助下,我也陷入困境。

这是我的代码:

对于“find”中的文件夹-d 型 | sed "s#^.#$(pwd)#" | sed 's/ /\ /g'`
    回显“$文件夹”
完毕

这将只用“\”替换“”的第一个实例,而不是其余的。

有任何想法吗?

答案1

忘记以这种方式构建命令并使用find -execdir

find . -type d -execdir sh -c 'pwd' \;

或者使用 zsh:

for d in **/*(/); do
  echo $d
done

答案2

您可以使用xargs而不是循环来对元素列表执行相同的命令。有一些选项可以处理空格。

答案3

我认为你让一切变得复杂了。

也许你只需要这个:

find $(pwd) -type d | sed 's/ /\\ /g'

相关内容