Как да пропуснете първия ред на файл с помощта на `awk`

How Skip First Line File Using Awk



Има различни приложения на командата `awk` в Linux. Например, може да се използва за отпечатване на съдържанието на текстов файл. Първият ред на много текстови файлове съдържа заглавието на файла, а понякога първият ред трябва да бъде пропуснат при отпечатване на съдържанието на файла. В този урок ще ви покажем как да изпълните тази задача, като използвате командата `awk`.

Създайте текстов файл

За да следвате този урок, създайте текстов файл с разделяне на табулатор с име booklist.txt със следното съдържание. Този файл съдържа списък с книги със съответните им автори. В този урок ще ви покажем как да отпечатате различни части от този файл, след като прескочите първия ред.







Киберсигурност с баш Пол Тронкон, Карл Албинг

Команден ред Kung Fu Jason Cannon

Командният ред на Linux Travis Booth

Баш в лесни стъпки Майк Макграт

Unix в лесни стъпки Майк Макграт

Пример 1: Пропуснете първия ред на файл, използвайки NR и оператора ‘>’

Променливата NR показва броя на записите във файл. Следващата команда `awk` използва променливата NR, за да пропусне първия ред на файл. Стойността на NR е 1 за първия ред. Следващата команда ще отпечата редове, за които стойността на NR е по -голяма от 1.



$коткаbooklist.txt

$awk '(НЕ> 1)'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът включва всички редове, различни от първия ред на файла.







Пример 2: Пропуснете първия ред, като използвате NR и оператора ‘! =’

Следващата команда `awk` е подобна на тази в предишния пример. Операторът за сравнение ‘! =’ Обаче се използва тук вместо ‘>’.

$коткаbooklist.txt

$awk 'NR! = 1'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът показва всички редове, различни от първия ред на файла.



Пример 3: Пропуснете първия ред на файл, като използвате условен израз

Следната команда `awk` ще отпечата редовете на файла, ако израза if е вярно. Тук изявлението if ще бъде вярно само когато стойността на NR не е равна на 1.

$коткаbooklist.txt

$awk '{if (NR! = 1) {печат}}'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът включва всички редове с изключение на първия ред на файла.

Пример 4: Отпечатайте имената на книгите от файла, но пропуснете първия ред

Две команди „awk“ се използват в този пример за отпечатване на всички имена на книги, с изключение на първата. Командата `awk` ще прочете първата колона от файла въз основа на разделителя на полета ( t) и ще изпрати изхода към втората команда` awk`. Втората команда `awk` ще отпечата желания изход.

$коткаbooklist.txt

$awk -F 'T' „{print $ 1}“booklist.txt| awk 'NR! = 1 печат}'

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът показва всички имена на книги, с изключение на това на първата книга.

Пример 5: Форматирайте съдържанието на файла, след като прескочите първия ред

Опцията „-F“, променливата NR и функцията printf се използват в следната команда „awk“ за генериране на форматиран изход след прескачане на първия ред. Командата ще раздели съдържанието на файла на колони въз основа на t, а printf ще отпечата първата и втората колони, когато стойността на NR е най -малко 2.

$коткаbooklist.txt

$awk -F 'T' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът показва форматираното съдържание на файла, с изключение на първия ред на файла.

Пример 6: Отпечатайте имената на книгите, след като прескочите първия ред, използвайки NR и NF

Следващата команда „awk“ използва опцията „-F“ и NR и NF за отпечатване на имената на книгите след пропускане на първата книга. Опцията „-F“ се използва за разделяне на съдържанието на файловата база на t. NR се използва за прескачане на първия ред, а NF се използва за отпечатване само на първата колона.

$коткаbooklist.txt

$awk -F 'T' 'NR> 1 && NF = 1'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Резултатът включва всички имена на книги във файла, с изключение на това на първата книга.

Пример 7: Отпечатайте форматираните имена на автори, след като прескочите първия ред

Следващата команда „awk“ използва опцията „-F“ и условен израз за отпечатване на имената на авторите след прескачане на първия ред. Тук стойността на NR се използва в условието if. Тук името на автора: n n ще бъде отпечатано като първи ред вместо съдържанието от първия ред. Имената на автора от файла ще бъдат отпечатани за другите стойности на NR.

$коткаbooklist.txt

$awk -F 'T' '{if (NR == 1) printf' nИме на автора: n n '; else printf '%s n', $ 2} 'booklist.txt

Следният изход ще бъде произведен след изпълнение на горните команди. Изходът показва текста, Име на автора: с нов ред и всички имена на автори се отпечатват с изключение на първия.

Заключение

Първият ред на файл може да бъде пропуснат с помощта на различни команди на Linux. Както е показано в този урок, има различни начини да пропуснете първия ред на файл, като използвате командата `awk`. Забележително е, че променливата NR на командата `awk` може да се използва за пропускане на първия ред на всеки файл.