我可以像在 UNIX 中一样在 Windows 命令提示符下运行它吗?
egrep -wi 'FRIENDS|FOES' *.sql
此命令旨在扫描每个 SQL 文件中的整个关键字“Friends”和“Foes”,忽略大小写。
好吧,您可以在 Windows 上安装 cygwin,这样您就可以拥有
bash
、grep
等
如果您只需要 grep,那么有 GnuWin32。
如果您不想安装任何东西并且使用的是 Win XP,请尝试
findstr
,尽管它不能执行“orring”。
如果您使用的是 Win-7,则有
powershell
,以及 select-string
。
我认为
findstr
命令足以替代 Windows 命令来代替 Linux。
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 中并使用它们)。
取决于您的系统。您安装了某个版本的 grep 吗? Windows 没有开箱即用的 grep 等效项,但您可以安装 Cygwin / GnuWin 或 unxutils.sourceforge.net。
我不确定 OR 条件,但基本功能应该是这样的
type *.sql | find /n "FRIENDS"
这里相当于egrep“string1|string2|string3”:
PS: C:> findstr /C:string1 /C:string2 /C:string3
就是这里
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.