作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种方法来对 find
的结果进行排序,正确返回多个目录以便在 bash 脚本中进行进一步处理。因为文件名不能包含 NULL (\0) 字符,所以我认为这对于通过管道传输到 sort
的结果来说是一个很好的分隔符。
所以这就是我所期望的工作方式:
find ./ -maxdepth 1 -type d -iname 'xyz?' -print0 | sort -t $'\0'
但遗憾的是我得到了提示 sort: empty tab
在寻找解释时遇到了 question leading to a similar result该操作描述为工作正常(请参阅 4 月 26 日的卢卡斯评论)。就我而言(使用 GNU sort v 7.4)这似乎有所不同。
我还通过管道输入 od -c
检查了 find 的输出,但这仅表明生成的文件夹按预期由 NULL 分隔。
这里有没有人遇到过类似的情况并且可能找到了解决方案或解释为什么\0 似乎是不可能的排序分隔符?
期待您的回答...
编辑:请注意,查找命令在这里用作示例,测试/说明它的更简单方法可能是 echo "g\0u\0b\0k"|排序 -t $'\0'
最佳答案
-t
是字段 分隔符。如果你想使用 \0
作为 line 分隔符,那么你需要使用 -z
。
关于bash - 如何在 GNU 排序中使用 NULL (\0) 作为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6563979/
我是一名优秀的程序员,十分优秀!