Awk

Как да пропуснете първия ред на файл, използвайки 'awk'

Как да пропуснете първия ред на файл, използвайки 'awk'

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

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

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

Киберсигурност с Баш Пол Тронконе, Карл Албинг
Команден ред Kung Fu Jason Cannon
Команден ред на Linux Travis Booth
Баш в лесни стъпки Майк Макграт
Unix в лесни стъпки Майк Макграт

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

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

$ cat booklist.текст
$ awk '(NR> 1)' списък с книги.текст

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

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

Следващата команда 'awk' е подобна на тази в предишния пример. Както и да е '!= 'тук се използва оператор за сравнение вместо'> '.

$ cat booklist.текст
$ awk 'NR!= 1 'списък с книги.текст

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

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

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

$ cat booklist.текст
$ awk 'if (NR!= 1) print 'списък с книги.текст

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

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

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

$ cat booklist.текст
$ awk -F "\ t" 'print $ 1' списък с книги.txt | awk 'NR!= 1 print '

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

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

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

$ cat booklist.текст
$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' списък с книги.текст

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

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

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

$ cat booklist.текст
$ awk -F '\ t' 'NR> 1 && NF = 1' списък с книги.текст

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

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

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

$ cat booklist.текст
$ awk -F '\ t' 'if (NR == 1) printf "\ nИме на автора: \ n \ n"; else printf "% s \ n", $ 2 'списък с книги.текст

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

Заключение

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

Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...
Най-добрите дистрибуции на Linux за игри през 2021 г
Операционната система Linux е изминала дълъг път от първоначалния си, прост, базиран на сървъра външен вид. Тази операционна система се подобри неимов...
Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...