相当于egrep的Windows命令

问题描述 投票:0回答:7

我可以像在 UNIX 中一样在 Windows 命令提示符下运行它吗?

egrep -wi 'FRIENDS|FOES' *.sql

此命令旨在扫描每个 SQL 文件中的整个关键字“Friends”和“Foes”,忽略大小写。

windows command
7个回答
5
投票

好吧,您可以在 Windows 上安装 cygwin,这样您就可以拥有

bash
grep

如果您只需要 grep,那么有 GnuWin32

如果您不想安装任何东西并且使用的是 Win XP,请尝试

findstr
,尽管它不能执行“orring”。

如果您使用的是 Win-7,则有

powershell
,以及
select-string


4
投票

我认为

findstr
命令足以替代 Windows 命令来代替 Linux。


3
投票

Windows 等效命令是 FIND 命令:

C:\>找到/?
在一个或多个文件中搜索文本字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “字符串”[[驱动器:][路径]文件名[...]]

  /V 显示不包含指定字符串的所有行。
  /C 仅显示包含该字符串的行数。
  /N 显示行号和显示的行。
  /I 搜索字符串时忽略字符的大小写。
  /OFF[LINE] 不跳过设置了脱机属性的文件。
  “string” 指定要查找的文本字符串。
  [驱动器:][路径]文件名
             指定要搜索的一个或多个文件。

如果未指定路径,FIND 将搜索在提示符下键入的文本
或从另一个命令通过管道传输。

但是您也可以从 http://gnuwin32.sourceforge.net/ 下载大多数 UNIX 实用程序(包括 grep)(只需将它们放入您的 PATH 中并使用它们)。


2
投票

取决于您的系统。您安装了某个版本的 grep 吗? Windows 没有开箱即用的 grep 等效项,但您可以安装 Cygwin / GnuWin 或 unxutils.sourceforge.net


2
投票

我不确定 OR 条件,但基本功能应该是这样的

type *.sql | find /n "FRIENDS"

0
投票

这里相当于egrep“string1|string2|string3”:

PS: C:> findstr /C:string1 /C:string2 /C:string3


0
投票

就是这里

findstr /I /C:FRIENDS /C:FOES *.sql

搜索文件中的字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See "color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word
For full information on FINDSTR regular expressions refer to the online Command
Reference.
© www.soinside.com 2019 - 2024. All rights reserved.