我正在寻找一个命令或任何我可以在Windows操作系统上使用的脚本来删除* .txt或* .csv文件中的整行。
案例:我有一个名为abc.csv
的文件,其中包含下面提到的行。我想删除包含.dll
或volume
的所有行。
abc.csv
value.dll
setup.exe
installer.exe
setup.dll
volume serial
serial
执行脚本/命令后,我希望abc.csv
只留下行
输出文件( abc.csv )
setup.exe
installer.exe
serial
请建议怎么做?
答案 0 :(得分:0)
这是一个使用Ruby
从命令行运行的一行脚本ruby -ne 'print unless $_[/unwanted/]' < file.txt
答案 1 :(得分:0)
批处理文件解决方案:
@echo off
if not exist "abc.csv" goto :EOF
%SystemRoot%\System32\findstr.exe /I /V /C:".dll" /C:"volume" "abc.csv" >"%TEMP%\abc.csv"
move /Y "%TEMP%\abc.csv" "abc.csv"
包含 findstr 的行,因为文件/I
中.dll
或volume
的{{1}}不区分大小写(忽略大小写)并且输出因为abc.csv
(inVerted)所有行都不包含这两个字符串中的一个。
对于第三行可能更好:
/V
现在使用正则表达式%SystemRoot%\System32\findstr.exe /I /R /V /C:"\.dll$" /C:"^volume" "abc.csv" >"%TEMP%\abc.csv"
必须在一行的末尾找到,并且必须在行的开头找到.dll
以忽略输出中的那一行。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
volume
echo /?
findstr /?
goto /?
if /?
另请阅读Microsoft有关Using command redirection operators。
的文章