Programing

Windows에 GREP과 같은 패턴 일치 유틸리티가 있습니까?

lottogame 2020. 5. 26. 07:43
반응형

Windows에 GREP과 같은 패턴 일치 유틸리티가 있습니까?


grepWindows 명령 프롬프트에서 사용할 수 있는 것과 유사한 유틸리티가 있습니까 , 아니면 타사 도구가 있습니까?


FINDSTR모든 Windows NT 클래스 운영 체제와 함께 제공 되는 명령 줄 도구 가 있습니다 ( FINDSTR /?자세한 내용은 명령 프롬프트 창에 입력 ). 모든 기능을 지원 grep하지는 않지만 필요에 따라 충분할 수 있습니다.


select-string이 용도 cmdlet을 포함하는 PowerShell (Windows 7 / 2008R2에 표준으로 포함, XP / 2003 / Vista / 2008의 경우 선택 사항)


GnuWin Project의 Windows 용 Grep (2014-10-02 : 구식입니다. 아래 주석 참조)


언급했듯이 findstr은 정상적으로 작동합니다. 예 :

C :> dir | findstr 윈도우

2013 년 11 월 6 일 09:55 오후 Windows


Cygwin grep 등)


또한 추가 응용 프로그램없이 Windows 7 이상에서 GREP와 같은 기능을 사용하는 또 다른 방법을 찾았으며 구형 시스템에서는 Powershell을 사용할 수 있습니다.

에서 파워 쉘 , 사용자가 사용할 수있는 경우 - 개체 가 플러스 더 GREP의 모든 기능을 제공하는 기능을 상당히 포괄적 인 세트가 있습니다.

희망이 도움이됩니다.


아무도 FINDSTR 을 언급하지 않은 것에 놀랐습니다 . 나는 grep poweruser는 아니지만 findstr은 기본 정규식 지원으로 파일을 필터링하고 stdin을 필요로합니다. Windows와 함께 제공됩니다. (편집 : 누군가가 findstr에 대해 언급 했으므로 늦었습니다.)


GnuWin32 는 grep, file, sed, groff, indent 등 모든 표준 리눅스 도구의 기본 Win32 버전을 제공합니다.

그리고 이러한 도구의 새 버전이 출시되면 지속적으로 업데이트됩니다.


Windows 에서는 파일 검색에 Far Manager 를 사용합니다. BSD 라이센스, 콘솔에서 작동, cmdline 매개 변수 입력 시간을 절약합니다. 다음은 Alt-F7에 의해 호출 된 검색 대화 상자입니다.Alt-F7


UnxUtils 는 Windows에서 실행되는 유닉스 유틸리티입니다. grep, sed, gawk 등이 있습니다.


훌륭하고 매우 빠른 파일 검색 유틸리티 인 Agent Ransack 은 정규식 검색을 지원합니다. 주로 GUI 유틸리티이지만 명령 줄 인터페이스도 사용할 수 있습니다.


업데이트 : 이것은 원래 질문이 있었을 때 사실이 아니었지만 이제 Microsoft는 Linux 용 Windows 하위 시스템을 설치하도록 허용 하고 Windows는 grep을 실행합니다. PowerShell에서 다음을 실행하십시오.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Windows reskit에는 "qgrep"라는 유틸리티가 있습니다. 이미 상자에 넣었을 수도 있습니다. ;-) "꼬리"명령도 함께 제공됩니다. 감사합니다!


기술적으로 grep이나 명령 줄은 아니지만 Microsoft Visual Studio와 Notepad ++ 에는 정규 표현식을 완벽하게 지원하는 파일에서 찾기 기능이 매우 우수합니다. CygWin 버전의 grep도 명령 줄에서 사용할 수 있지만 자주 사용하는 것으로 나타났습니다.


이 스레드에 $ 0.02를 추가하겠습니다. dnGREP 는 실행 취소, Windows 탐색기 통합, PDF, zip, DOC 및 기타 여러 가지 검색을 지원하는 Windows를위한 훌륭한 오픈 소스 grep 도구입니다.


그렇습니다. 견고한 GUI를 가진 Windows PC 용 프로그램은 하나만 있으며 그것은 나에게 꼭 필요한 유틸리티입니다. 저는 개발자로 일하고 있으며 모든 컴퓨터에서 XFind 프로그램을 먼저 설치합니다. 1997 년에 만들어졌으며 지금까지 버전은 1.0이며 지금까지는 작동하며 최고입니다. 종종 " .cs", " .aspx", " .sct"(Visual FoxPro 양식 코드 파일) 또는 " . *" 에서 일부 문자열을 검색해야 하며 XFind는 모든 파일을 스캔하고 파일을 보여줍니다. 파일에서 문자열이 어디에 있는지 확인할 수 있습니다. XFind에는 일종의 편집기가 있습니다. 이진 파일이면 찾은 문자열이 표시됩니다. 당신이 나와 같은 개발자라면 그것을 사용 해보고 영원히 사용하십시오.


당신은 분명히 많은 다른 권고를 받았습니다.
무료, 타사 유틸리티의 개인적 선택은 다음과 같습니다. Agent Ransack
Agent Ransack 다운로드
다소 혼동되는 이름에도 불구하고 잘 작동하며 다양한 방법으로 파일을 찾을 수 있습니다.

행운을 빕니다


GUI를 원하면 Bare Grep 이 좋습니다. GNU Grep 은 CLI에 좋습니다


유료 제품이 마음에 들지 않으면 PowerGREP이 제가 가장 좋아하는 제품입니다.


우리는 최근 수천 개의 파일에서 상당히 발전된 대량 작업에 PowerGREP사용했습니다 . PDF 파일의 내용에 정규식 검색을 포함하고 PDF 문서를 대규모로 변경합니다.

마누엘 노동으로부터 시간을 절약하고 싶다면 돈 가치가 있습니다. 당신은 내가 생각하기 전에 그것을 시도 할 수 있습니다.


베어 Windows를 사용해야하는 경우 위에서 언급 한 Powershell 옵션 외에도 RegEx를 적절히 지원하는 VBScript를 사용할 수 있습니다.

MS는 또한 Technet에 관리자를위한 수많은 예제가 포함 된 적절한 스크립팅 영역을 보유하고 있습니다.


LikeGrep Java 유틸리티를 사용해보십시오. 많은 경우에 도움이 될 수 있습니다. 원하는대로 파일에있는 일부 텍스트를 바꿀 수도 있습니다. 대용량 파일에 대한 작업을 보증합니다 (최대 8GB 테스트)


위에서 언급했듯이 gnuwin32 프로젝트에는 grep의 Windows CLI 버전이 있습니다.

그래픽 인터페이스로 무언가를 원한다면 (오픈 소스) 도구 AstroGrep을 추천합니다 .


It has been a while since I've used them, but Borland (Embarcadero now) included a command line grep with their C/C++ compiler. For some time, they have made available their 5.5 version as a free download after registering.


There's a commercial grep utility available from Oak Road Systems.


I recommend PowerGrep

I had to do an e-discovery project several years ago. I found that fisdstr had some limitations, most especially fisdstr would eventually fail

the script had to search across thousands of files using a couple of dozen search terms/phrases.

Cygwin's grep worked much better, it didn't choke often, but ultimately I went to PowerGrep because the graphical interface made it much easier to tell when and where it crashed, and also it was really easy to edit in all the conditionals and output that I wanted. Ultimately PowerGrep was the most reliable of the three.


the all-in-one busybox contains grep / egrep / sed / awk and MANY more

get it from:

or some older


I know that it's a bit old topic but, here is another thing you can do. I work on a developer VM with no internet access and quite limited free disk space, so I made use of the java installed on it.

Compile small java program that prints regex matches to the console. Put the jar somewhere on your system, create a batch to execute it and add the folder to your PATH variable:

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 (together with jgrep.jar):

@echo off
java -cp c:\jgrep\jgrep.jar com.jgrep.JGrep %*

and add c:\jgrep in the end of the PATH environment variable.

Now simply call jgrep "expression" file.txt from anywhere.

I needed to print some specific groups from my expression so I added a modifier and call it like jgrep -printGroup=1 "expression" file.txt.


I realize its an old question but I came across this post seeking an answer. And I have found one so adding it here for the collective internet memory

Powershell: Select-String Module: Microsoft.PowerShell.Utility

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string

and an informative blog post with advanced examnples: "How to “grep” in PowerShell" https://antjanus.com/blog/web-development-tutorials/how-to-grep-in-powershell/

A simple example from that blog post: cat package.json | Select-String -Pattern webpack ls ./src/components/ | Select-String -Pattern View

C:> cat post.md | Select-String -Pattern "^\w*:"


Use Cygwin...

it has 32 and 64 bits versions
and it works fine from Windows 2000 (*)
to Windows 10 or Server 2019

I use Cygwin for a long time...
and recently tryed to substitute with Windows-Linux-Subsystems...

not for long...
I quickly went back to Cygwin again...

much more flexible, controlable and rich...
also less intrusive...

\ bin을 경로에 추가
하면 ... Windows / Batch / Powershell ...
또는 DOS-Box ... 또는 Powershell-Box에서 anyware를 사용할 수 있습니다 .

또한
nginX 또는 PHP와 같이 실제로 작동하는 많은 훌륭한 패키지 설치할 수 있습니다. 심지어 IIS에서 Cygwin PHP 패키지를 사용하기도합니다 ...

보너스 wou는 bash 쉘에서도 사용할 수 있습니다 ...
(이것이 원래 의도라고 생각합니다 ;-))

참고 URL : https://stackoverflow.com/questions/1416241/is-there-a-pattern-matching-utility-like-grep-in-windows

반응형