我有一个长文本文件(可能超过7万行),需要更改-删除一些行并更改其他一些行。什么是正确的批处理命令?
我有这个文本文件:
blah
blah_blah, blah_other_blah
NUMLINES, 71369
VARIABLE_TYPES,T1,T10,S
!,NUMBER,OTHER
*,"1421915957",3
*,"1422222863",7
*,"1422239294",4
*,"1422382002",10
*,"1422485177",4
*,"1422496045",8
*,"1422500174",10
*,"1422500175",8
and so on
*,"1930482159",10
*,"1930482160",3
*,"1930482161",3
## some other blah lines
blah
我想要这个:
NUMBER;OTHER
1421915957;3
1422222863;7
1422239294;4
1422382002;10
1422485177;4
1422496045;8
1422500174;10
1422500175;8
and so on
1930482159;10
1930482160;3
1930482161;3
感谢您的帮助。
到目前为止,我尝试使用以下代码删除不需要的行:
findstr /v /b /c:"*," file1.txt > file2.txt
findstr /x /v /l /G:"file1.txt" "file2.txt" > "file3.txt"
但是它以搜索字符串长退出
答案 0 :(得分:0)
使用findstr
获取以!,
或*,
开头的所有行。放置for /f
循环以提取所需的信息并将输出重定向到新文件:
(for /f "tokens=1,2,* delims=," %%a in ('type file.txt ^|findstr /b /c:"!," /c:"*,"') do @echo %%~b,%%c)>file2.txt
~
中的%%~b
将删除周围的引号。
(注意:这是批处理文件语法。如果要直接在命令行上执行,请将每个%%
替换为一个%
)
(我希望您的blah
行都不以!,
或*,
开头)