Nếu bạn có bất kỳ kinh nghiệm nào bằng cách sử dụng dòng lệnh Linux, chắc chắn bạn đã sử dụng "grep" để tìm kiếm chuỗi văn bản, cho dù chúng đến từ các tệp hay từ các lệnh. Có một cách tốt hơn để làm như vậy, và nó được gọi là Ack.

Ack là một chương trình được viết bằng Perl nhằm mục đích là một sự thay thế cho Grep đáng kính cũ, mà đã được khoảng từ đầu những năm 70. (Trong trường hợp bạn đang tự hỏi, grep là viết tắt của “Global Regular Expression Print.”)

Tác giả của Ack, Andy Lester, rất tự tin rằng Ack tốt hơn grep, rằng trang web của dự án của anh được đặt tên là betterthangrep.com.

Bạn có thể lấy nó theo một vài cách. Nếu bạn là người dùng Perl thông thường, bạn có thể sử dụng CPAN để cài đặt nó, có lẽ với Perlbrew như tôi đã nêu trong một bài viết trước đó. Cpanminus là một khách hàng CPAN nhẹ phổ biến. Để cài đặt Ack với nó, chỉ cần sử dụng lệnh này:

 cpanm App :: Ack 

Tất nhiên, nếu bạn đang sử dụng Ubuntu và muốn cài đặt nó thông qua apt-get, bạn cũng được tự do làm điều đó, mặc dù Ubuntu có xu hướng đứng sau phiên bản mới nhất của nhà phát triển. Chỉ cần sử dụng lệnh này:

 sudo apt-get cài đặt ack-grep 

Bạn có thể sử dụng Ack khá nhiều cách bạn có thể sử dụng grep. Ví dụ: để tìm tên “maketecheasier” trong tệp mte.txt, chỉ cần sử dụng lệnh sau:

 ack maktecheasier mte.txt 

Hoặc bạn có thể chuyển hướng đầu ra vào nó:

 mèo | ack maketecheasier 

Một trong những tính năng chính mà người dùng mới sẽ nhận thấy là nó mang lại một điểm nổi bật trực quan cho chuỗi tìm kiếm của bạn ở đầu ra, có nghĩa là bạn có thể thấy chính xác nếu bạn thực sự khớp với những gì bạn đang tìm kiếm.

Nếu bạn đã tìm kiếm bằng một cụm từ thông dụng phức tạp, bạn có thể thấy chính xác những gì phù hợp trong khi cũng phát hiện ra các kết quả dương tính giả.

Một tính năng hữu ích khác là Ack sẽ tự động tìm kiếm các tập tin đệ quy. Điều này có nghĩa rằng không chỉ Ack sẽ tìm kiếm tất cả các tập tin trong một thư mục nếu bạn cung cấp cho nó, nếu thư mục đó chứa các thư mục khác, nó cũng sẽ tìm kiếm các thư mục đó, cho đến khi bạn đến cuối cây thư mục. Điều này đặc biệt hữu ích cho các lập trình viên (và nếu bạn là một, bạn có thể đã biết phương tiện đệ quy), nhưng nó cũng rất hữu ích nếu bạn đang tìm kiếm một mẫu trong một loạt các tệp văn bản thuần túy.

Và nói về lập trình, bạn có thể thu hẹp tìm kiếm của mình thành nhiều ngôn ngữ lập trình phổ biến. Dưới đây là một ví dụ sử dụng Perl:

 ack --perl 'somepattern' / my / thư mục 

Bạn có thể tìm thấy nhiều ví dụ hơn trong phần “Loại tệp của Ack” của tài liệu.

Kể từ khi Ack được viết bằng Perl, nó tự động tương thích với các biểu thức chính quy của Perl. Cụm từ thông dụng là một loại tìm kiếm văn bản siêu chính xác, cho phép bạn tìm các mẫu văn bản rất cụ thể.

Các tính năng tốt nhất và hài hước nhất là tùy chọn " --thpppt ", gọi lên một bản vẽ nghệ thuật ASCII của Bill the Cat:

 _ / | \ 'oO' = (___) = U ack --thppt! 

Vì Unix và Linux làm cho nó tương đối dễ dàng để viết các chương trình, có thể dễ dàng tạo các thay thế cho các chương trình hệ thống thông thường. Ack là một trong số đó cho thấy sự sáng tạo của cộng đồng Perl và Unix / Linux.