Tôi chỉ muốn nhận dòng df -h
đầu ra thứ ba .
Tôi nên sử dụng loại lệnh nào?
Tôi chỉ muốn nhận dòng df -h
đầu ra thứ ba .
Tôi nên sử dụng loại lệnh nào?
Câu trả lời:
Các df
lệnh thực sự chấp nhận một cuộc tranh cãi việc xác định hệ thống tập tin mà bạn muốn. Vì vậy, bạn có thể sử dụng, ví dụ, df /home
hoặc df /dev/sda3
.
Nếu bạn định phân tích đầu ra cho một tập lệnh, bạn sẽ muốn sử dụng df -P
để đảm bảo nó không bao giờ kết thúc thành nhiều dòng. Vì vậy, ví dụ, bạn có thể sử dụng df -Ph /home | tail -n +2
(nhưng nếu bạn phân tích cú pháp đầu ra cho tập lệnh, hãy lưu ý đến khả năng tên tệp có khoảng trắng trong chúng)
df /home
cung cấp một tiêu đề. Bạn đang diễn giải mục đích của người dùng. Bạn có thể đúng. Bạn có thể sai, ai biết?
tail -n +2
loại bỏ tiêu đề.
Bạn có thể sử dụng kết hợp head
và tail
:
df -h | head -3 | tail -1
Hoặc là
df -h | tail -n +3 | head -1
Nhưng lưu ý rằng, df
cho phép lọc đầu ra từ các tùy chọn của df
chính nó, bạn nên xem xét những cái đó trước khi sử dụng bất kỳ lệnh bên ngoài nào.
Kiểm tra man df
.
Awk là công cụ xử lý văn bản, vì vậy nó phù hợp cho nhiệm vụ này
df -h | awk 'NR == 3'
Tôi giả sử bạn không nhất thiết phải tìm kiếm dòng thứ ba, nhưng đối với dòng có đề cập đến một đĩa cụ thể (ví dụ /dev/sda3
) hoặc một điểm gắn kết cụ thể (ví dụ /home
).
Vì vậy, thay vì chỉ hiển thị dòng thứ ba, không an toàn vì thứ tự đầu ra có thể thay đổi và bạn có thể nhận được kết quả khác, bạn có thể lọc đầu ra theo nội dung và chỉ hiển thị các dòng khớp với một mẫu cụ thể hoặc chứa từ khóa.
Công cụ của bạn cho việc này là grep
.
Ví dụ: nếu bạn muốn dòng về thiết bị /dev/sda3
, bạn gõ:
df -h | grep '/dev/sda3'
Nếu bạn muốn dòng đề cập đến thư mục chính của bạn là điểm gắn kết, hãy sử dụng:
df -h | grep '/home'
df -h /dev/sda3
hoặc df -h /home
(cái sau hoạt động ngay cả khi nó không phải là điểm gắn kết).
Bạn cũng có thể sử dụng perl
:
df -h | perl -ne 'print if $.==3'
Số $.
dòng hiện tại, vì vậy bạn có thể in dòng thứ N bằng perl -ne 'print if $.==N'
.
Ý tưởng đầu tiên của tôi sẽ là một cái đầu-đuôi-xây dựng.
Thí dụ:
df -h | head -3 | tail -1
head -3
làm cho đầu ra dừng lại sau ba dòng và tail -1
sẽ chỉ xuất ra dòng cuối cùng.
Ngoài ra, nếu bạn biết, đầu ra sẽ trông như thế nào, bạn cũng có thể sử dụng grep
để tìm các dòng có chứa một chuỗi nhất định.