我有一个txt文件,如:
sample text1
sample text2
sample text3
我需要它:
sample
sample
sample
基本上,我需要删除给定词组后面的整行,在这种情况下是“sample
”关键字
有人能帮助我吗?我更喜欢vbscript或stanalone的东西,我可以为这个
制作一批此致
答案 0 :(得分:2)
(Get-Content sample.txt)-replace'。* sample(。+)','$ 1'| Out-File sample.txt
答案 1 :(得分:0)
这将在.cmd或.bat文件中起作用:
for /f "tokens=1" %%i in ('type file1') do @echo %i >> file2
答案 2 :(得分:0)
由于您使用PowerShell标记了您的问题,我将在powershell中为您提供解决方案:
$target='sample'
foreach ($line in gc .\foo.txt){$line.substring(0,$target.length)|out-file -append bar.txt}
我假设每一行都以“sample”开头。
如果“示例”文本在该行的任何位置,则应该起作用:
$target='sample'
foreach ($line in gc .\foo.txt){$line.substring(0,$line.indexof($target)+$target.length)|out-file -append bar.txt}
答案 3 :(得分:0)
使用Just Vbscript,您可以按照以下方式实现此目的
Option Explicit
Dim oFSO, oTxtFile, sLine ,filePath, cTxtFile
Const ForReading=1
Const ForWriting=2
filePath ="C:\Documents and Settings\Amol\Desktop\Converted\test.txt"
'' Filepath is your local path to txt file
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTxtFile = oFSO.OpenTextFile(filePath, 1)
Set cTxtFile = oFSO.CreateTextFile(filePath & ".tmp")
Do Until oTxtFile.AtEndOfStream
sLine = oTxtFile.ReadLine
If InStr(sLine,"sample") <> 0 Then
sLine = Left(sLine, InStr(sLine,"sample") -1 )&"sample"
cTxtFile.WriteLine(sLine)
End if
Loop
oTxtFile.Close
cTxtFile.Close
oFSO.DeleteFile(filePath)
oFSO.MoveFile filePath&".tmp", filePath