2013-08-10 41 views
5

Tôi có dòng:Bash: Sắp xếp tập tin từ 'tìm' bởi nội dung

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

Tôi muốn trích xuất nội dung (mà phải là văn bản) của tất cả các tập tin trở lại và ống đó vào sort để được sắp xếp theo thứ tự abc. Tôi đã cố gắng đường ống đầu ra của dòng trên trực tiếp vào sort nhưng kết quả này trong các tên tập tin được sắp xếp chứ không phải là nội dung của họ. Tôi có cần phải biến đầu ra của find thành một mảng và sau đó xử lý nó bằng sort?

[sửa] Đầu ra tôi muốn là nội dung được sắp xếp.

+2

ống nó qua 'xargs cat' sau đó thông qua 'sort'. –

+0

Cảm ơn! Điều đó làm việc hoàn hảo –

Trả lời

8

Đối với đầy đủ vì đây là một vài cách để làm điều đó:

  1. find -maxdepth 1 -type f -iname '*key*' -not -name '*~' -exec cat {} \; | sort
  2. find -maxdepth 1 -type f -iname '*key*' -not -name '*~' | xargs cat | sort
  3. cat $(find -maxdepth 1 -type f -iname '*key*' -not -name '*~') | sort
0

Nếu bạn muốn lưu kết quả được sắp xếp vào một tập tin, hãy thử:

find -maxdepth 1 -type f -iname '*key*' -not -name '*~' | cat | sort > sorted.txt 

nếu không chỉ cần thoát khỏi > sorted.txt và đầu ra được sắp xếp sẽ được in vào cửa sổ terminal.

Các vấn đề liên quan