Linux look
lệnh chạy qua một tệp và liệt kê tất cả các dòng bắt đầu bằng một từ hoặc cụm từ cụ thể. Nhưng hãy coi chừng! Nó hoạt động khác nhau trên các bản phân phối Linux khác nhau. Hướng dẫn này sẽ chỉ cho bạn cách sử dụng nó.
Giao diện của Ubuntu Lệnh hoạt động khác nhau
Đối với một lệnh đơn giản, nhưng hữu ích, look
chắc chắn đã cho tôi cách chạy khi tôi đang nghiên cứu bài viết này. Có hai vấn đề: khả năng tương thích và tài liệu.
Bài viết này đã được kiểm tra bằng Ubuntu, Fedora và Manjaro. look
được đóng gói với mỗi bản phân phối đó, điều này thật tuyệt. Vấn đề là hành vi không giống nhau trên cả ba. Phiên bản Ubuntu rất khác. Theo Ubuntu Manpages, hành vi sẽ giống nhau.
Cuối cùng tôi đã tìm ra nó. look
truyền thống sử dụng tìm kiếm nhị phân, trong khi Ubuntu look
sử dụng tìm kiếm tuyến tính. Các trang trực tuyến của Ubuntu dành cho Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) và Disco Dingo (19.04) đều cho biết phiên bản Ubuntu sử dụng tìm kiếm nhị phân, điều này không đúng như vậy.
Nếu chúng ta nhìn vào địa phương Trang người dùng Ubuntu, chúng ta thấy nó nói rõ look
sử dụng tìm kiếm tuyến tính. Có một tùy chọn dòng lệnh để buộc nó sử dụng tìm kiếm nhị phân. Cả hai phiên bản trong các bản phân phối khác đều không có tùy chọn để chọn giữa các phương pháp tìm kiếm.
man look
Cuộn xuống qua trang người đàn ông, chúng tôi thấy phần mô tả phiên bản này của look
sử dụng tìm kiếm tuyến tính thay vì tìm kiếm nhị phân.
Đạo lý của câu chuyện là kiểm tra các trang người đàn ông địa phương trước.
Tìm kiếm tuyến tính so với Tìm kiếm nhị phân
Phương pháp tìm kiếm nhị phân nhanh hơn và hiệu quả hơn phương pháp tìm kiếm tuyến tính. Làm việc với các tệp lớn làm cho điều này rất rõ ràng. Nhược điểm của tìm kiếm nhị phân là tệp của bạn phải được sắp xếp. Nếu bạn không muốn sắp xếp tệp của mình, hãy sắp xếp một bản sao của nó, sau đó sử dụng look
.
Chúng tôi sẽ chứng minh điều này ở những nơi khác trong bài viết này. Chỉ cần lưu ý rằng trên Fedora, Manjaro và tôi mong đợi hầu hết phần còn lại của thế giới Linux, bạn sẽ cần tạo một bản sao tệp của mình được sắp xếp và làm việc với nó.
Cài đặt từ
look
có thể hoạt động với bất kỳ tệp văn bản nào bạn chọn hoặc có thể hoạt động với tệp từ điển cục bộ “các từ”.
Trên Manjaro, bạn cần cài đặt tệp “words”. Sử dụng lệnh này:
sudo pacman -Syu words
Sử dụng giao diện
Đối với bài viết này, chúng tôi sẽ làm việc với một tệp văn bản của bài thơ Edward Lear “Những bông hoa ly”.
Hãy xem nội dung của nó bằng lệnh này:
less the-jumblies.txt
Đây là phần đầu của bài thơ. Lưu ý rằng chúng tôi đang sử dụng Ubuntu, vì vậy tệp vẫn chưa được sắp xếp. Đối với Fedora và Manjaro, chúng tôi sẽ làm việc với một bản sao được sắp xếp của tệp, mà chúng tôi sẽ đề cập ở phần sau của bài viết này.
Nếu chúng ta tìm kiếm những dòng bắt đầu bằng từ “Họ”, chúng ta sẽ tìm ra một số những gì mà Jumblies đã làm.
look They the-jumblies.txt
look
trả lời bằng cách liệt kê những dòng sau:
Bỏ qua trường hợp ký tự
Để làm cho look
bỏ qua sự khác biệt giữa chữ hoa và chữ thường, sử dụng -f
(bỏ qua trường hợp) tùy chọn. Chúng tôi đã sử dụng lại “chúng” làm từ tìm kiếm, nhưng lần này, nó ở dạng chữ thường.
look -f they the-jumblies.txt
Lần này, kết quả bao gồm một dòng phụ.
Dòng bắt đầu bằng “HỌ” đã bị bỏ qua trong tập kết quả cuối cùng vì dòng này được viết hoa toàn bộ và không khớp với cụm từ tìm kiếm của chúng tôi, “Họ”.
Bỏ qua trường hợp cho phép look
để đưa nó vào kết quả.
Sử dụng giao diện với một tệp đã được sắp xếp
Nếu bản phân phối Linux của bạn có phiên bản look
tuân theo hành vi truyền thống của việc sử dụng tìm kiếm nhị phân, bạn phải sắp xếp tệp của mình hoặc làm việc với một bản sao được sắp xếp của nó.
Hãy lặp lại lệnh để tìm kiếm “Họ”, nhưng lần này là trên Manjaro.
Như bạn có thể thấy, không có kết quả nào được trả về. Nhưng chúng tôi biết có những dòng trong bài thơ bắt đầu bằng từ, “Họ”.
Hãy tạo một bản sao đã được sắp xếp của tệp. Nếu bạn định sử dụng -f
(bỏ qua trường hợp) hoặc -d
(chỉ các ký tự chữ và số và dấu cách) với các tùy chọn look
, bạn phải sử dụng chúng khi sắp xếp tệp.
Các -o
(đầu ra) tùy chọn cho phép bạn chỉ định tên của tệp mà các dòng được sắp xếp sẽ được thêm vào. Trong ví dụ này, đó là “sorted.txt”.
sort -f -d the-jumblies.txt -o sorted.txt
Hãy sử dụng look
trên tệp sorted.txt, và sau đó sử dụng -f
và -d
các tùy chọn.
Bây giờ, chúng tôi nhận được kết quả mà chúng tôi mong đợi.
Chỉ xem xét dấu cách và chữ và số
Để làm cho cái nhìn bỏ qua bất kỳ thứ gì không phải là ký tự chữ và số hoặc dấu cách, hãy sử dụng -d
(chữ và số) tùy chọn.
Hãy xem liệu có bất kỳ từ nào bắt đầu bằng “Ồ”.
look -f oh the-jumblies.txt
Không có kết quả nào được trả lại bởi look
.
Hãy thử lại và yêu cầu look bỏ qua bất kỳ thứ gì khác ngoài ký tự chữ và số và dấu cách. Điều đó có nghĩa là các ký tự và ký hiệu, chẳng hạn như dấu chấm câu, sẽ bị bỏ qua.
look -f -d oh the-jumblies.txt
Lần này, chúng tôi nhận được một kết quả. Chúng tôi đã không tìm thấy dòng này trước đây bởi vì dấu ngoặc kép và dấu chấm than đã làm nhầm lẫn tìm kiếm.
Chỉ định ký tự kết thúc
Bạn có thể nói look
để sử dụng một ký tự cụ thể làm ký tự kết thúc. Thông thường, dấu cách và cuối dòng được sử dụng làm ký tự kết thúc.
Các -t
(ký tự chấm dứt) cho phép chúng tôi chỉ định ký tự mà chúng tôi muốn sử dụng. Trong ví dụ này, chúng ta sẽ sử dụng ký tự dấu nháy đơn. Chúng ta cần trích dẫn nó với một dấu gạch chéo ngược để look
biết rằng chúng tôi không mở một chuỗi.
Chúng tôi cũng đang trích dẫn cụm từ tìm kiếm vì nó bao gồm một khoảng trắng. Chúng tôi đang tìm kiếm hai từ.
look -f -t ' "they call" the-jumblies.txt
Kết quả khớp với cụm từ tìm kiếm, được kết thúc bằng dấu nháy đơn mà chúng tôi đã sử dụng làm ký tự kết thúc.
Sử dụng giao diện mà không cần tệp
Nếu bạn không cung cấp tên tệp trên dòng lệnh, hãy xem sử dụng tệp từ.
Lệnh:
đưa ra những kết quả sau:
Đây là tất cả các từ trong tệp bắt đầu bằng từ “vòng tròn”.
Không nhìn xa hơn
Đó là tất cả những gì cần làm look
.
Thật dễ dàng khi bạn biết có các hành vi khác nhau trên các bản phân phối Linux khác nhau và bạn đã xác định rõ phiên bản của mình sử dụng tìm kiếm nhị phân hay tuyến tính.