Мне нужно удалить строку из позиции X в позицию Y на каждой строке в текстовом файле
У меня есть огромный плоский файл 100K записей, каждый из которых охватывает 3000 столбцов. Мне нужно удалить сегмент данных, начиная с позиции 300 до позиции 500 перед архивированием. Это важная часть данных, которую необходимо стереть, прежде чем я смогу ее заархивировать. Я ищу awk или sed или любую подобную команду, которая может помочь мне.
Образец файла
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.
Ожидаемый результат
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.
Здесь я удалил символ между позициями 89 и 95. Одно небольшое изменение, мне также нужно записать измененное содержимое в тот же файл.
Ниже приведен сценарий, который я имею до сих пор. Я перебираю все файлы, делю их на файлы с максимальными строками 20000 и затем удаляю символы из позиций X и Y перед архивированием.
для текущего файла вls -1 *.[tT][xX][tT]
do echo $ currentfilename имя_файла = $ {имя_файла %%. *} awk -v A = "$ имя_файла" "{имя_файла = A"Часть"int ((NR-1) / 20000)" .txt "; печать >> имя файла} '$ currentfilename awk' {печать substr ($ 0,1,522) substr ($ 0,953) >> filename} '$ currentfilename mv $ currentfilename $ APP_ROOT / Архив готов