我在某些文件夹中有超过5k个文本文件。现在我只需要从每个文本文件的第一行和最后一行删除"-"
。
我不知道怎么做,是否有人可以提供帮助?我该怎么用呢? vbs或普通批次
操作系统:Windows7
文本文件如下:01.txt
% 01-A247M15 G70
N0001 G30 G17 X-100 Y-100 Z0
N0002 G31 G90 X100 Y100 Z45
N0003 ; --PART NO.: NC-HON.PHX01.COVER-SHOE.DET-1000.050
N0004 ; --TOOL: 8.55 X .3937
N0005 D00 Q50 P01 +8.5500 ; TOOL DIA
N0006 D00 Q51 P01 +0.3920 ; TOOL RAD
N0007 % 01-A247M15 G70
请帮忙。
答案 0 :(得分:0)
你还没有说明你想要哪个脚本perl,unix。所以我会给你算法,
1. read first line
2. Split with - as delimiter (cut in unix)
3. paste the split words in redirect to new file >> newfile
4. get count of lines of file (wc in unix)
5. get the 2nd line till last one but line and append to new file (head and tail in unix)
6. do the same steps 1, 2, and 3 for last line and append to new file
答案 1 :(得分:0)
使用VBScript更简单......
首先,您将文本文件解析为数组:http://www.windowsitpro.com/content/content/46489/Listing_01.txt
Function FileToArray(ByVal strFile, ByVal blnUNICODE)
Const FOR_READING = 1
Dim objFSO, objTS, strContents
' BEGIN CALLOUT A
FileToArray = Split("")
' END CALLOUT A
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strFile) Then
On Error Resume Next
Set objTS = objFSO.OpenTextFile(strFile, FOR_READING, False, blnUNICODE)
If Err = 0 Then
strContents = objTS.ReadAll
objTS.Close
' BEGIN CALLOUT B
FileToArray = Split(strContents, vbNewLine)
' END CALLOUT B
End If
End If
End Function
然后对数组的第一行和最后一行执行REPLACE并将其写入另一个文件或同一文件。
答案 2 :(得分:0)
如果您可以访问类似Linux / Linux的环境(MinGW,Cygwin等),则可以使用以下一个内衬
find ./ -name *.txt | xargs sed -i '1s/-//g'
find ./ -name *.txt | xargs sed -i '$s/-//g'
编辑在最后一行包括替换:)