您的位置  > 互联网

暑期创作大赛如何查找文本中的字符串

说到搜索字符串,我们首先想到的肯定是CTRL+F。 这是接下来的操作。 那么批处理呢? 在本文中,我们将学习如何使用批处理在文本中查找字符串。 批处理中有两个主要命令:find 和。 本文我们首先学习外部命令find(它是find的增强命令,参数功能较多,两者在用法上有一些区别)。

我们先看一下语法:

查找 [/V] [/C] [/N] [/I] "" [(s)]

在一个或多个文件中搜索文本字符串,即在文件中搜索文本字符串并显示找到该字符串的所有行。

1.这里指定的是特定的文本字符串,所以find搜索字符串不支持通配符和正则表达式。 要使用这些功能,您需要使用它们。

2.要查找的字符串用双引号标记。 重点放在字符串上。 字符串必须用双引号“”括起来,否则find会报错。

3. 必须有要搜索的文件和路径。 默认为当前路径。 如果不指定,可以从另一个命令通过管道符|传入,如

C:\> 输入 cc.txt | 找到“8800”

type 显示cc.txt 的文本内容。 管道符 | 将显示内容传递给find命令,搜索指定字符串8800。

4.路径名支持通配符(不建议在路径中使用,会很慢,但可以在文件名中使用)。

5. 如果搜索包含双引号字符 " 的文本,除了将整个字符串括在引号中之外,还必须将其转义为 ""。如果搜索 "tt",则需要输入 """tt" ““ 寻找。

6. FIND 命令将输出一个包含 10 个破折号 ---------- 的字符串,后跟要搜索的文件名,然后是文件中任何匹配的文本行。 这也是我喜欢这个命令的一个功能。 但如果你不想显示这个功能(破折号加路径和文件名),你可以使用类型加管道符号 | 通过查找,或者使用命令。

以下是如何使用参数:

1.忽略大小写/i(,忽略)

查找/i“ac”cc.txt

查找包含 ac 或 AC 或 aC 或 Ac 的字符串并显示这些行。

2.显示行号/n(,号)

查找 /i /n "ac" cc.txt

添加 /n,你发现了什么? 上例中显示的行前面有一个行号,即该行所在的文本行。

3. 行数,row count/c(count, count)

查找/i /c“ac”cc.txt

上面的例子中,/n改为/c,只找到了几行这样的数字串。

4. 不包括(、不、排他、不)

查找 /i /v "ac" cc.txt>dd.txt

在上面的示例中,/c 更改为 /v,这意味着查找不包含 ac(不区分大小写)字符串的行并重定向到 dd.txt。

C:\> 输入 .txt | 找到“”/v/c

空字符串“”被视为永不匹配。 /v 标志反转测试,因此现在它匹配所有内容,而 /c 返回文本行数。

问题来了:

1、/v和/c一起使用时显示什么,/n和/c一起使用时显示什么?

将 /v 或 /n 与 /c 一起使用,如果在同一命令行上指定 /c 和 /v,则 find 显示不包含指定字符串的行数。 如果在同一命令行上指定了 /c 和 /n,则 find 会忽略 /n。

2、find的多个参数可以连续写入吗? /iv、参数、字符串和文件的位置可以互换吗?

find不能连续写入参数,位置可以互换。

find在批处理中的用法:

1.find用于批处理,与type结合使用,通过管道来查找字符串。

C:\> 类型.txt | 查找“”/v/c

2.find用于批处理,更常与for、if、else if等结合使用,特别是for /f更常用于将找到的关键字行重定向到文本。

FOR /F "eol=; =* =, " %%A in (.txt) do (ping %%A |find "mfg">>log.txt)

需要注意的是,如果find不在do后面的括号中,而是在in后面的括号中用单引号“”括起来,则在通过管道传输时需要在前面加^进行转义,如^|find 。