Ich muss die Zeichenfolge in jeder Zeile einer Textdatei von Position X bis Position Y löschen

Ich habe eine sehr große flache Akte 100K zeichnet jede auf, die 3000 Spalten überspannt. Ich muss vor der Archivierung ein Segment von der Startposition 300 bis zur Position 500 des Datenfensters entfernen. Dies ist ein sensibler Teil der Daten, die gelöscht werden müssen, bevor ich archivieren kann. Ich suche einen awk oder sed oder einen ähnlichen Befehl, der den Trick für mich tun kann.

Beispieldatei

003133780 MORNING GLORY DR                                        SOUTHAMPTON         PA18966780 MORNING GLORY DR    
0054381303 MADISON ST                                             RADFORD             VA241411303 MADISON ST         
00586728 CONESTOGA COURT                                          CHADDS FORD         PA1931728 CONESTOGA COURT      
1852921800 SAMER RD                                               MILAN               MI481601800 SAMER RD           
192717175 EVERGREEN CIRCLE                                        HENDERSONVILLE      TN37075175 EVERGREEN CIRCLE    
213673217 EAST BRANCH                                             LONGVIEW            TX75604217 EAST BRANCH         
2490423205 NOTTAGE LANE                                           FALLS CHURCH        VA220423205 NOTTAGE LANE       
249357344 BALOGH PLACE                                            LONGWOOD            FL32750344 BALOGH PLACE        
2502811224 WILFORD HOLLOW ROAD                                    VINTON              VA241791224 WILFORD HOLLOW ROAD
277634210 AMANDA CT                                               WHITEHOUSE          TX7579119726 COPPER OAKS DRIVE 
282482507 B ST.                                                   CHESAPEAKE          VA23324507 B ST.               

Erwartete Ausgabe

003133780 MORNING GLORY DR                                        SOUTHAMPTON         PA780 MORNING GLORY DR    
0054381303 MADISON ST                                             RADFORD             VA1303 MADISON ST         
00586728 CONESTOGA COURT                                          CHADDS FORD         PA28 CONESTOGA COURT      
1852921800 SAMER RD                                               MILAN               MI1800 SAMER RD           
192717175 EVERGREEN CIRCLE                                        HENDERSONVILLE      TN175 EVERGREEN CIRCLE    
213673217 EAST BRANCH                                             LONGVIEW            TX217 EAST BRANCH         
2490423205 NOTTAGE LANE                                           FALLS CHURCH        VA3205 NOTTAGE LANE       
249357344 BALOGH PLACE                                            LONGWOOD            FL344 BALOGH PLACE        
2502811224 WILFORD HOLLOW ROAD                                    VINTON              VA1224 WILFORD HOLLOW ROAD
277634210 AMANDA CT                                               WHITEHOUSE          TX19726 COPPER OAKS DRIVE 
282482507 B ST.                                                   CHESAPEAKE          VA507 B ST.               

Hier habe ich das Zeichen zwischen Position 89 und 95 entfernt. Eine kleine Änderung, ich muss auch den geänderten Inhalt in dieselbe Datei schreiben.

Unten ist das Skript, das ich bisher habe. Ich durchlaufe alle Dateien, teile sie in Dateien mit maximal 20000 Zeilen auf und entferne dann die Zeichen von den Positionen X und Y, bevor ich archiviere.

für aktuellen Dateinamen inls -1 *.[tT][xX][tT] Geben Sie $ currentfilename tempfilename = $ {currentfilename %%. *} ein. awk -v A = "$ tempfilename" '{filename = A "Teil"int ((NR-1) / 20000)" .txt "; print >> Dateiname} '$ aktuellerDateiname awk' {print substr ($ 0,1,522) substr ($ 0,953) >> Dateiname} '$ aktuellerDateiname mv $ aktuellerDateiname $ APP_ROOT / Archiv fertig

Antworten auf die Frage(2)

Ihre Antwort auf die Frage