1

一部のフォルダに5,000を超えるテキストファイルがあります。"-"これで、各テキストファイルの最初の行と最後の行から削除するだけで済みます。

やり方がわからないのですが、助けてくれる人はいますか?これを行うには何を使用すればよいですか?vbsまたは通常のバッチ

OS: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 

助けてください。

4

3 に答える 3

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
于 2013-01-17T15:08:51.423 に答える
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を実行し、それを別のファイルまたは同じファイルに書き込みます。

于 2013-01-17T15:13:36.323 に答える
0

Linux / Linuxのような環境(MinGW、Cygwinなど)にアクセスできる場合は、次の1つのライナーを使用できます。

    find ./ -name *.txt | xargs sed -i '1s/-//g'
    find ./ -name *.txt | xargs sed -i '$s/-//g'

最後の行に置換を含めるように編集:)

于 2013-08-22T16:46:19.303 に答える