Почетна » како да » Како уклонити линије из средине датотеке користећи Линук терминал

    Како уклонити линије из средине датотеке користећи Линук терминал

    Када управљате сопственим серверима, једна од ствари које ћете морати да урадите полу-редовно је да извлачите ствари из средине датотеке. Можда је то лог фајл, или морате да додате још једну таблицу из средине ваше МиСКЛ резервне датотеке, као што сам и ја урадио.

    Да би одредили бројеве редова, једноставна греп -н наредба је обавила посао (аргумент -н даје бројеве редова). Због тога је било лако схватити шта ми је потребно да извучем.

    греп -н вп_постс ховтогеекдб010114.бак | више

    Резултат је нешто слично овоме, које показује бројеве редова изнад на левој страни излаза. Пипинг све у “више” осигурава да можете видјети прву линију без да се она помиче. Сада имате број линије за почетак, и вероватно онај са којим ћете завршити.

    4160: - Структура табеле за табелу 'вп_постс' 4163: ДРОП ТАБЛЕ ИФ ЕКСИСТС 'вп_постс'; 4166: ЦРЕАТЕ ТАБЛЕ 'вп_постс' (4203: - Подаци о дампингу за табелу 'вп_постс' 4206: ЛОЦК ТАБЛИЦЕ 'вп_постс' ВРИТЕ; 4207: / *! 40000 АЛТЕР ТАБЛЕ 'вп_постс' ДИСАБЛЕ КЕИС * /; 'ВАЛУЕС (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11

    Могли бисте, наравно, само извући излаз из греп-а у другу датотеку, на овај начин:

    греп кључна реч филенаме.ткт> оутпутфиле

    У мом случају, то није желело да ради, јер из неког разлога нисам могао да увезем резултујућу резервну копију. Дакле, нашао сам другачији начин да извадим линије користећи сед, и овај метод је радио.

    сед -н '4160,4209п' ховтогеекдб0101140201.бак> оутпутфиле

    У основи, синтакса је оваква, пазећи да користите -н аргумент, и укључите “п” иза другог броја линије.

    сед -н 'ФИРСТЛИНЕНУМБЕР, ЛАСТЛИНЕНУМБЕРп' филенаме> оутпутфиленаме

    Неки други начини на које можете извући одређене линије у средини датотеке? Можете користити команду "хеад" са аргументом + број да бисте само прочитали прве к линије датотеке, а затим користите реп да бисте извукли те линије. Не најбоља опција, много надземних. Једноставнија опција? Можете користити команду сплит да бисте датотеку претворили у више датотека право на жељени број линије, а затим издвојили линије помоћу главе или репа.

    Или можете користити сед.