我有一行:

find -maxdepth 1 -type f -iname '*key*'  -not -name '*~'

我想提取返回的所有文件的内容(应该是文本),并将其传送到sort以按字母顺序排序。我尝试将上述行的输出直接传递到sort中,但这导致文件名被排序而不是其内容。我需要将find的输出转换为数组,然后由sort处理吗?

[编辑]我想要的输出是排序后的内容。

最佳答案

为了完整起见,这里有一些其他方法可以这样做:

  • find -maxdepth 1 -type f -iname '*key*' -not -name '*~' -exec cat {} \; | sort
  • find -maxdepth 1 -type f -iname '*key*' -not -name '*~' | xargs cat | sort
  • cat $(find -maxdepth 1 -type f -iname '*key*' -not -name '*~') | sort
  • 关于bash - Bash:按内容对 'find'中的文件进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18158365/

    10-15 01:32