我有一句话:
find -maxdepth 1 -type f -iname '*key*' -not -name '*~'
我想提取返回的所有文件的内容(应该是文本),并将其传递到sort
以按字母顺序排序。我已尝试将上述行的输出直接导入sort
,但这会导致文件名被排序而不是其内容。我是否需要将find
的输出转换为数组,然后由sort
处理?
[edit]我想要的输出是已排序的内容。
答案 0 :(得分:9)
为了完整起见,还有以下几种方法:
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
答案 1 :(得分:0)
如果您想将已排序的输出保存到文件中,请尝试:
find -maxdepth 1 -type f -iname '*key*' -not -name '*~' | cat | sort > sorted.txt
否则只是摆脱> sorted.txt
,排序的输出将被打印到终端窗口。