Како прескочити први ред датотеке помоћу `авк`

How Skip First Line File Using Awk



Постоје различите употребе команде `авк` у Линуку. На пример, може се користити за штампање садржаја текстуалне датотеке. Први ред многих текстуалних датотека садржи заглавље датотеке, а понекад се први ред мора прескочити приликом штампања садржаја датотеке. У овом водичу ћемо вам показати како да извршите овај задатак помоћу команде `авк`.

Направите текстуалну датотеку

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







Кибернетичка безбедност са Башом Полом Тронконом, Карлом Албингом

Командна линија Кунг Фу Јасон Цаннон

Линук командна линија Травис Боотх

Баците се лаким корацима Мике МцГратх

Уник у лаким корацима Мике МцГратх

Пример 1: Прескочите први ред датотеке користећи НР и оператор>>

НР променљива означава број записа у датотеци. Следећа команда `авк` користи НР променљиву да прескочи први ред датотеке. Вредност НР је 1 за први ред. Следећа команда ће одштампати редове за које је вредност НР већа од 1.



$мачкабооклист.ткт

$авк '(НЕ> 1)'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз укључује све редове осим првог реда датотеке.







Пример 2: Прескочите први ред помоћу НР и оператора ‘! =’

Следећа команда `авк` је слична оној у претходном примеру. Међутим, овде се користи упоређујући оператор „! =“ Уместо „>“.

$мачкабооклист.ткт

$авк 'НР! = 1'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз приказује све редове осим првог реда датотеке.



Пример 3: Прескочите први ред датотеке користећи условни израз

Следећа команда `авк` штампаће редове датотеке ако је иф наредба тачна. Овде ће наредба иф бити тачна само када вредност НР није једнака 1.

$мачкабооклист.ткт

$авк '{иф (НР! = 1) {принт}}'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз укључује све редове осим првог реда датотеке.

Пример 4: Одштампајте називе књига из датотеке, али прескочите први ред

Две команде `авк` се користе у овом примеру за штампање свих назива књига осим прве. Команда `авк` ће прочитати прву колону из датотеке на основу сепаратора поља ( т) и послати излаз другој наредби` авк`. Друга `авк` команда ће одштампати жељени излаз.

$мачкабооклист.ткт

$авк ' т' '{принт $ 1}'бооклист.ткт| авк 'НР! = 1 отисак}'

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз приказује све називе књига осим имена прве књиге.

Пример 5: Форматирајте садржај датотеке након што прескочите први ред

Опција '-Ф', НР променљива и функција принтф се користе у следећој наредби `авк` за генерисање форматираног излаза након прескакања првог реда. Наредба ће поделити садржај датотеке у колоне на основу т, а принтф ће одштампати прву и другу колону када је вредност НР најмање 2.

$мачкабооклист.ткт

$авк ' т' 'НР> = 2 {принтф' %30с %20с н ', $ 1, $ 2}'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз приказује форматирани садржај датотеке, искључујући први ред датотеке.

Пример 6: Одштампајте називе књига након што прескочите први ред помоћу НР и НФ

Следећа команда `авк` користи опцију '-Ф' и НР и НФ за штампање назива књига након прескакања прве књиге. Опција „-Ф“ користи се за одвајање садржаја базе датотека на т. НР се користи за прескакање првог реда, а НФ се користи за штампање само прве колоне.

$мачкабооклист.ткт

$авк ' т' 'НР> 1 && НФ = 1'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Испис укључује све називе књига у датотеци, осим имена прве књиге.

Пример 7: Одштампајте форматирана имена аутора након што прескочите први ред

Следећа команда `авк` користи опцију '-Ф' и условни израз за штампање имена аутора након прескакања првог реда. Овде се вредност НР користи у услову иф. Овде ће се име аутора: н н одштампати као први ред уместо садржаја из првог реда. Имена аутора из датотеке биће одштампана за остале вредности НР.

$мачкабооклист.ткт

$авк ' т' '{иф (НР == 1) принтф' нИме аутора: н н '; елсе принтф '%с н', $ 2} 'бооклист.ткт

Следећи излаз ће бити произведен након извршавања горњих команди. Излаз приказује текст, Име аутора: са новим редом, а сва имена аутора се штампају осим првог.

Закључак

Први ред датотеке може се прескочити коришћењем различитих Линук наредби. Као што је приказано у овом водичу, постоје различити начини да прескочите први ред датотеке помоћу команде `авк`. Значајно је да се НР променљива наредбе `авк` може користити за прескакање првог реда било које датотеке.