Windows 使用findstr删除文本行
我已经通过下面的代码移动了以特定文本开头的行的文件 这之前是可能的,但我想删除文本,除了只有特定文本的行 但我不知道该怎么办Windows 使用findstr删除文本行,windows,batch-file,cmd,findstr,Windows,Batch File,Cmd,Findstr,我已经通过下面的代码移动了以特定文本开头的行的文件 这之前是可能的,但我想删除文本,除了只有特定文本的行 但我不知道该怎么办 for /f %%a in ('findstr /b /m "a" *.txt') do ( move /y "%%~a" "D:change_text" ) 下面是一个文本示例 例1 到 例2 到 告诉我你的意见 可以用其他语言说。嗯,只查找文本,但不会从文件中删除文本。您正在搜索包含特定文本的文件,然后将其移动到某个位置,因此您错过了
for /f %%a in ('findstr /b /m "a" *.txt') do (
move /y "%%~a" "D:change_text"
)
下面是一个文本示例
例1
到
例2
到
告诉我你的意见
可以用其他语言说。嗯,只查找文本,但不会从文件中删除文本。您正在搜索包含特定文本的文件,然后将其移动到某个位置,因此您错过了实际删除文本的步骤。您可以这样做:
rem/*搜索包含匹配文本的文件并循环浏览;
rem由于指定了`/M`选项,因此返回文件名;
rem搜索字符串“^a”搜索单词“a”的开头
第`^`、`\>`行的rem构成单词边界:*/
对于'findstr/M^a\>*.txt'do中的/F delims=eol=|%%F
rem/*再次搜索当前文件,但这次返回匹配文本;
rem使用重定向“>”将该文本写入另一个文件;
rem如果成功`&&`,请删除当前原始文件:*/
>D:\%%~F findstr^a\>%%~F&&del%%~F
b 0.d4g7a6 0.4g1h5s 0.b9g5r2 0.6s7d2f
a 0.6d7g1a 0.6g1g8a 0.6z4s6f 0.g7w2a7x
a 0.6d7g1a 0.6g1g8a 0.6z4s6f 0.g7w2a7x
d 0.5g98 0.6b3n8 0.3s4q2a 0.s3z6d9f
a 1.6g2 0.5c9d4 0.1a7ge2z 0.1fe4sz6x
a 0.3q8t6e 0.5q8r6q 2.1a4zx9vs 0.1q2s6c
z 0.6p2o3t 0.e9 0.1q8s6z 0.v0s9d4f
a 0.7i6i1l 0.6u9q4 0.0c2v9 0.0z5s5d
a 0.9q3z 0.6s7d6f 0.0w3s9f 0.h0y1y8u
a 1.6g2 0.5c9d4 0.1a7ge2z 0.1fe4sz6x
a 0.3q8t6e 0.5q8r6q 2.1a4zx9vs 0.1q2s6c
a 0.7i6i1l 0.6u9q4 0.0c2v9 0.0z5s5d
a 0.9q3z 0.6s7d6f 0.0w3s9f 0.h0y1y8u