我有这行:
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
如果您想将排序后的输出保存到文件中,请尝试:
find -maxdepth 1 -type f -iname '*key*' -not -name '*~' | cat | sort > sorted.txt
否则只需摆脱,> sorted.txt
排序后的输出将打印到终端窗口。