Có một tiện ích tương tự grep
có sẵn từ Windows Command Prompt, hoặc có một công cụ bên thứ ba nào cho nó không?
Có một tiện ích tương tự grep
có sẵn từ Windows Command Prompt, hoặc có một công cụ bên thứ ba nào cho nó không?
Câu trả lời:
Có một công cụ dòng lệnh được gọi là FINDSTR
đi kèm với tất cả các hệ điều hành Windows NT (nhập FINDSTR /?
vào cửa sổ Dấu nhắc Lệnh để biết thêm thông tin) Nó không hỗ trợ mọi thứ grep
nhưng nó có thể đủ cho nhu cầu của bạn.
netstat -n | FINDSTR 3389
PowerShell (bao gồm tiêu chuẩn trên Windows 7 / 2008R2, tùy chọn cho XP / 2003 / Vista / 2008) bao gồm select-string
lệnh ghép ngắn cho mục đích này.
Grep cho Windows của Dự án GnuWin ( 2014-10 / 02 : Nó đã lỗi thời, xem các bình luận bên dưới)
như đã đề cập, findstr hoạt động tốt. thí dụ :
C:> thư mục | tìm Windows
11/06/2013 09:55 PM Windows
Cygwin grep và nhiều hơn nữa;)
Tôi cũng tìm thấy một cách khác để sử dụng GREP như chức năng trong Windows 7 trở lên mà không cần thêm ứng dụng nào để cài đặt và trên các hệ thống cũ hơn, bạn có thể sử dụng cài đặt Powershell.
Trong Powershell , Người dùng có thể sử dụng Where-Object, nó có bộ tính năng khá toàn diện, cung cấp tất cả các chức năng của GREP cộng thêm.
Hy vọng nó giúp.
Tôi ngạc nhiên không ai nhắc đến TÌM KIẾM . Tôi không phải là người sử dụng năng lượng grep, nhưng findstr thực hiện những gì tôi cần, lọc các tệp và stdin, với một số hỗ trợ regex nguyên thủy. Tàu với Windows và tất cả những thứ đó. (Chỉnh sửa: Vâng, có ai đó đã đề cập đến findstr, tôi đoán là muộn rồi)
GnuWin32 đáng nói, nó cung cấp phiên bản Win32 gốc của tất cả các công cụ linux tiêu chuẩn, bao gồm grep, file, sed, groff, indent, v.v.
Và nó được cập nhật liên tục khi các phiên bản mới của các công cụ này được phát hành.
Trên Windows tôi sử dụng Far Manager để tìm kiếm tệp. BSD được cấp phép, hoạt động trong bảng điều khiển, tiết kiệm thời gian nhập các tham số cmdline. Đây là hộp thoại tìm kiếm của nó được gọi bởi Alt-F7.
Cập nhật: Điều này không đúng khi câu hỏi ban đầu được hỏi, nhưng bây giờ Microsoft cho phép một Cài đặt hệ thống con Windows cho Linux và sau đó Windows sẽ chạy grep. Trong PowerShell, hãy chạy:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
UnxUtils là một bộ sử dụng Unix tuyệt vời chạy trên Windows. Nó có grep, sed, gawk, vv
Một tiện ích tìm kiếm tệp tuyệt vời và rất nhanh, Agent Ransack , hỗ trợ tìm kiếm biểu thức thông thường. Đây chủ yếu là một tiện ích GUI, nhưng giao diện dòng lệnh cũng có sẵn.
Mặc dù không phải là grep về mặt kỹ thuật cũng như dòng lệnh, cả Microsoft Visual Studio và Notepad ++ đều có tính năng Tìm trong tệp rất tốt với hỗ trợ biểu thức chính quy đầy đủ. Tôi thấy mình sử dụng chúng thường xuyên mặc dù tôi cũng có phiên bản grep CygWin có sẵn trên dòng lệnh.
Tôi sẽ thêm 0,02 đô la của tôi vào chủ đề này. dnGREP là một công cụ grep mã nguồn mở tuyệt vời cho các cửa sổ hỗ trợ hoàn tác, tích hợp windows explorer, tìm kiếm bên trong các tệp PDF, khóa, DOC và nhiều thứ khác ...
Có, chỉ có một chương trình cho PC Windows có GUI vững chắc và nó là thiết bị cần thiết cho tôi. Tôi làm việc như một nhà phát triển và trên mọi máy tính tôi đã có, điều đầu tiên là cài đặt chương trình XFind. Nó được tạo ra vào năm 1997 và cho đến nay phiên bản là 1.0 và cho đến nay hoạt động và nó là phiên bản tốt nhất. Thường xuyên tôi cần tìm kiếm một số chuỗi trong " .cs", " .aspx", " .sct" (tệp mã biểu mẫu Visual FoxPro) hoặc chỉ " . *" Và XFind quét tất cả các tệp và hiển thị cho tôi các tệp và một điều tuyệt vời khác là mà bạn có thể xem chuỗi ở đâu trong tệp. XFind cũng có một số loại trình soạn thảo. Nếu nó là tệp nhị phân, nó sẽ hiển thị cho bạn chuỗi tìm thấy. Hãy thử nó và sử dụng nó mãi mãi nếu bạn là nhà phát triển như tôi.
Bạn rõ ràng đã nhận được rất nhiều khuyến nghị khác nhau.
Lựa chọn cá nhân của tôi cho Tiện ích bên thứ 3 miễn phí là: Ransack
Agent Ransack Tải xuống
Mặc dù tên hơi khó hiểu, nó hoạt động tốt và có thể được sử dụng theo nhiều cách khác nhau để tìm tệp.
Chúc may mắn
bận rộn tất cả trong một chứa grep / egrep / sed / awk và NHIỀU nữa
nhận nó từ:
Cập nhật: không còn khả dụng - hoặc một số cũ hơn
Gần đây chúng tôi đã sử dụng PowerGREP cho một số hoạt động hàng loạt khá tiên tiến trên hàng ngàn tệp. Bao gồm tìm kiếm regex trong nội dung của tệp PDF và thay đổi tài liệu PDF ở quy mô lớn.
Nó đáng giá tiền nếu bạn muốn tiết kiệm thời gian từ lao động manuel. Bạn có thể thử nó trước khi bạn mua tôi nghĩ.
Có một tiện ích grep thương mại có sẵn từ Oak Road Systems .
Tôi khuyên dùng PowerGrep
Tôi đã phải làm một dự án khám phá điện tử vài năm trước. Tôi thấy rằng fisdstr
có một số hạn chế, đặc biệt là fonomstr cuối cùng sẽ thất bại
tập lệnh phải tìm kiếm trên hàng ngàn tệp bằng cách sử dụng vài chục cụm từ / cụm từ tìm kiếm.
Grep của Cygwin hoạt động tốt hơn nhiều , nó không bị sặc thường xuyên, nhưng cuối cùng tôi đã đến PowerGrep vì giao diện đồ họa giúp dễ dàng hơn khi biết nó bị rơi khi nào và ở đâu, và cũng rất dễ chỉnh sửa trong tất cả các điều kiện và đầu ra Tôi muốn Cuối cùng, PowerGrep là đáng tin cậy nhất trong ba.
Tôi biết rằng đó là một chủ đề hơi cũ nhưng, đây là một điều bạn có thể làm. Tôi làm việc trên máy ảo dành cho nhà phát triển không có truy cập internet và không gian đĩa trống khá hạn chế, vì vậy tôi đã sử dụng java được cài đặt trên nó.
Biên dịch chương trình java nhỏ in regex khớp với bàn điều khiển. Đặt jar ở đâu đó trên hệ thống của bạn, tạo một lô để thực thi nó và thêm thư mục vào biến PATH của bạn:
JGrep.java:
package com.jgrep;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JGrep {
public static void main(String[] args) throws FileNotFoundException, IOException {
int printGroup = -1;
if (args.length < 2) {
System.out.println("Invalid arguments. Usage:");
System.out.println("jgrep [...-MODIFIERS] [PATTERN] [FILENAME]");
System.out.println("Available modifiers:");
System.out.println(" -printGroup - will print the given group only instead of the whole match. Eg: -printGroup=1");
System.out.println("Current arguments:");
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]=" + args[i]);
}
return;
}
Pattern pattern = null;
String filename = args[args.length - 1];
String patternArg = args[args.length - 2];
pattern = Pattern.compile(patternArg);
int argCount = 2;
while (args.length - argCount - 1 >= 0) {
String arg = args[args.length - argCount - 1];
argCount++;
if (arg.startsWith("-printGroup=")) {
printGroup = Integer.parseInt(arg.substring("-printGroup=".length()));
}
}
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
}
Matcher matcher = pattern.matcher(sb.toString());
int matchesCount = 0;
while (matcher.find()) {
if (printGroup > 0) {
System.out.println(matcher.group(printGroup));
} else {
System.out.println(matcher.group());
}
matchesCount++;
}
System.out.println("----------------------------------------");
System.out.println("File: " + filename);
System.out.println("Pattern: " + pattern.pattern());
System.out.println("PrintGroup: " + printGroup);
System.out.println("Matches: " + matchesCount);
}
}
c: \ jgrep \ jgrep.bat (cùng với jgrep.jar):
@echo off
java -cp c:\jgrep\jgrep.jar com.jgrep.JGrep %*
và thêm c: \ jgrep vào cuối biến môi trường PATH.
Bây giờ chỉ cần gọi jgrep "expression" file.txt
từ bất cứ đâu.
Tôi cần in một số nhóm cụ thể từ biểu thức của mình vì vậy tôi đã thêm một công cụ sửa đổi và gọi nó như thế nào jgrep -printGroup=1 "expression" file.txt
.
Tôi nhận ra đó là một câu hỏi cũ nhưng tôi đã xem qua bài đăng này để tìm câu trả lời. Và tôi đã tìm thấy một cái để thêm nó vào đây cho bộ nhớ internet tập thể
Powershell: Mô-đun chuỗi chọn: Microsoft.PowerShell.Utility
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select- chuỗi
và một bài đăng trên blog thông tin với các bài kiểm tra nâng cao: "Cách thức kiếm tiền trong PowerShell" https://antjanus.com/blog/web-development-tutorials/how-to-grep-in-powershell/
Một ví dụ đơn giản từ bài đăng trên blog đó: cat pack.json | Chọn chuỗi -Praft webpack ls ./src/components/ | Chọn chuỗi-Dạng xem mô hình
C:> mèo post.md | Chọn-Chuỗi -Potype "^ \ w *:"
Sử dụng Cygwin ...
nó có phiên bản 32 và 64 bit
và nó hoạt động tốt từ Windows 2000 (*)
đến Windows 10 hoặc Server 2019
Tôi sử dụng Cygwin trong một thời gian dài ...
và gần đây đã cố gắng thay thế bằng Windows-Linux-subsystems ...
không lâu đâu ...
tôi nhanh chóng quay lại Cygwin lần nữa ...
linh hoạt hơn, có thể kiểm soát và giàu có hơn ...
cũng ít xâm phạm hơn ...
chỉ cần thêm \ bin vào đường dẫn ...
và bạn có thể sử dụng bất kỳ phần mềm nào trong Windows / Batch / Powershell ...
hoặc trong DOS-Box ... hoặc trong Powershell-Box ...
Ngoài ra, bạn có thể cài đặt rất nhiều gói tuyệt vời
thực sự hoạt động ... như nginX hoặc PHP ... Tôi thậm chí còn sử dụng gói Cygwin PHP trong IIS của mình ...
Là một phần thưởng, bạn cũng có thể sử dụng nó từ bash shell ...
(Tôi nghĩ rằng đây là mục đích ban đầu ;-))