Điểm:1

Làm cách nào để kiểm soát đầu ra của lệnh 'tree -F'?

lá cờ cn

Tôi đang sử dụng lệnh 'cây' để tạo tệp văn bản mà tôi phân tích cú pháp trong Libre Office Calc:

tree -ifsD --timefmt "%Y-%m-%d %T" $PWD > dirlist_tree.txt

Tôi đã thêm tùy chọn '-F' để thêm '/' vào cuối các dòng thư mục để giúp Calc phân tích cú pháp:

cây -F -ifsD --timefmt "%Y-%m-%d %T" $PWD > dirlist_tree.txt

Từ những gì tôi có thể tìm thấy cho đến nay, có ba ký tự bổ sung mà tùy chọn này có thể thêm vào đầu ra. Ít nhất một trong số họ đang gây ra cho tôi một số vấn đề, do đó, câu hỏi này:

Làm thế nào tôi có thể giới hạn cây -F lệnh sao cho nó sẽ chỉ thêm '/' vào các dòng thư mục và không thêm các dòng khác, như '=' hoặc '|' hoặc '*', nó hiện đang làm gì?

cảm ơn,

BabaG

Điểm:1
lá cờ in

Để phân tích cú pháp cây đầu ra, bạn nên sử dụng đầu ra có thể đọc được bằng máy, ví dụ: json với cây -J:

Ví dụ. phân tích cú pháp thành CSV bằng cách sử dụng con trăn, để mở trực tiếp trong Libre Office Calc:

tree_to_csv.py

#!/usr/bin/env python3

nhập json, sys, csv
dữ liệu = json.load(sys.stdin)

phần tử = []

def get_element(el):
    yếu tố toàn cầu
    nếu "kích thước" trong el:
        phần tử.append(el)
    nếu el["type"] == "thư mục":
        cho sub_el trong el["contents"]:
            get_element(sub_el)

cho el trong dữ liệu: 
    get_element(el)

tên trường = ['kích thước', 'thời gian', 'tên']
nhà văn = csv.DictWriter(sys.stdout, fieldnames=fieldnames, extrasaction='ignore')

nhà văn.writeheader()

cho el trong các phần tử:
    nếu el["type"] == "thư mục":
        el["tên"] += '/'
    nhà văn.writerow(el)

Chạy:

cây -Jsf --timefmt "%Y-%m-%d %T" | python tree_to_csv.py
BabaG avatar
lá cờ cn
Ồ! Cảm ơn vì điều này, pLumo. Đó là nhiều hơn tôi đã mong đợi. Tôi đã hy vọng giữ nguyên quy trình của mình ít nhiều thay vì chuyển sang gọi một tập lệnh python. Tôi đã hy vọng có thể có một số vòng loại đơn giản mà tôi có thể thêm vào để yêu cầu '-F' bỏ qua '=', '|' và '*' và chỉ áp dụng '/' cho các dòng thư mục. Điều này sẽ khiến tôi phải suy nghĩ lại rất nhiều vì tôi không phải là người viết kịch bản/lập trình viên.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.