我是shell脚本新手。我试图循环来自find
的文件路径列表,并计算列表中每个文件的行数。一些文件路径包含空格,因此它们在for循环中被解释为单独的元素而不是单个元素。
当我运行以下内容时:
for filepath in `find . -name '*.m'`; do echo $filepath; done;
我看到一些带空格的路径打印在多行上而不是打印在同一行上。
如何为每个文件路径转义空格?
答案 0 :(得分:1)
我正在尝试遍历查找中的文件路径列表,并计算列表中每个文件的行数。
以下是这样做的正确方法:
find . -type f -name '*.md' -exec wc -l {} \;
for .. in
循环接受IFS
个分隔的单词列表。 IFS
默认包含空格,因此文件名中的空格实际上将文件名拆分为单独的单词。