-L max-lines
Use at most max-lines nonblank input lines per command line.
Trailing blanks cause an input line to be logically continued on
the next input line. Implies -x.
-l[max-lines], --max-lines[=max-lines]
Synonym for the -L option. Unlike -L, the max-lines argument is
optional. If max-lines is not specified, it defaults to one.
The -l option is deprecated since the POSIX standard specifies
-L instead.
如果你正在测试这个
那么我对所有换行符都消失并不感到惊讶,因为 shell 会将
$ALL_FOUND_LINES
空格、制表符和换行符(默认情况下)中的值拆分为单词(然后通过文件名生成(通配符)进一步扩展每个单词)。它这样做是因为扩展没有被引用。然后,该echo
实用程序获取它打印在一行上的单词列表。更好的测试是
注意变量扩展的引用。
printf
关于over的选择echo
,请参阅为什么 printf 比 echo 更好?.您的命令可以改进为
在这里,
xargs
我们不是将文件名传递给 ,而是一次直接在尽可能多的文件上find
执行。请注意,摆脱并不能解决您的换行问题,因为与此无关。这会加快速度,因为它涉及更少的.grep
debug.log*
xargs
xargs
grep
另请参阅了解 `find` 的 -exec 选项。
如果您需要对找到的每条线做一些事情,那么您可以像这样循环它们:
(或用您需要执行的任何其他处理步骤替换 while 循环)。因此,永远不需要将变量中的所有数据存储为换行符分隔的字符串。
另请参阅了解“IFS= 读取 -r 行”
人 xargs