Làm thế nào đầu ra của ls -l
có thể được sửa đổi thành các trường riêng biệt bằng cách sử dụng các tab thay vì khoảng trắng? Tôi muốn dán đầu ra vào một bảng tính; phần đệm với số lượng không gian thay đổi gây khó khăn cho việc này. Để minh họa:
root root drwxr-xr-x 2 4096 26 tháng 9 11:43 wpa_supplicant -rw-r ----- 1 gốc quay số 66 tháng 9 26 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 ngày 8 tháng 10 08:21 X11 drwxr-xr-x 12 root root 4096 18 tháng 2 23:31 xdg drwxr-xr-x 2 root root 4096 Ngày 31 tháng 1 06:11 xml gốc rễ drwxr-xr-x 2 4096 22 tháng 11 07:26 xul-ext -rw-r - r-- 1 root gốc 349 ngày 13 tháng 1 năm 2012 zsh_command_not_found
Trong đoạn trích từ ls -l /etc
hình trên, hàng 1, 2 và 3 có một chữ số duy nhất trong cột 2 trong khi hàng 4 có hai. Điều đó có nghĩa là sự liên kết đạt được bằng cách sử dụng hai khoảng trắng để tách các cột 1 và 2 trong các hàng 1-3, nhưng chỉ một không gian trong hàng 4.
ls
nói , phân tích đầu ra của nó là tốt. Đó hiếm khi là mục tiêu. Có thể cho rằng nó ở đây. Tôi nghĩ rằng phương pháp bạn đã sử dụng là khá tốt (bất kỳ phương pháp nào cũng sẽ tạo ra kết quả không mong muốn với một số nhu cầu)! Tuy nhiên, phân tích cú phápls
có thể tốt hơn. Hãy xem xét trường hợp của một tên tệp thực sự có một ký tự tab trong đó.ls -l
thay thế tab bằng một?
ký tự. Tập lệnh của bạn giữ nguyên ký tự tab, sẽ tạo thêm các cột nếu đầu ra của nó được hiểu là được phân định bằng tab và được sử dụng để tạo bảng tính. Nó xuống cấp nghiêm trọng nếu tên tệp có dòng mới.