Awk

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

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

'tab' се използва като разделител във файла с разделители. Този тип текстов файл е създаден за съхраняване на различни видове текстови данни в структуриран формат.  В Linux съществуват различни типове команди за анализиране на този тип файлове.  Командата 'awk' е един от начините за анализ на файла, разделен с табулация, по различни начини. Използването на командата 'awk' за четене на файл с разделители е показано в този урок.

Създайте файл, разделен с табулатори:

Създайте текстов файл с име потребители.текст със следното съдържание, за да тествате командите на този урок. Този файл съдържа името на потребителя, имейл, потребителско име и парола.

потребители.текст

Име Имейл Потребителско име Парола
Md. Робин [имейл защитен] robin89 563425
Нила Хасан [имейл защитен] nila78 245667
Мирза Абас [имейл защитен] mirza23 534788
Aornob Hasan [имейл защитен] arnob45 778473
Nuhas Ahsan [имейл защитен] nuhas34 563452

Пример-1: Отпечатайте втората колона на файл с разделители, използвайки опцията -F

Следващата команда 'sed' ще отпечата втората колона на текстов файл с разделители. Ето, „-F“ опция се използва за дефиниране на разделителя на полето на файла.

$ cat потребители.текст
$ awk -F '\ t' 'print $ 2' потребители.текст

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

Пример-2: Отпечатайте първата колона на файл с разделители, използвайки променливата FS

Следващата команда 'sed' ще отпечата първата колона на текстов файл с разделители. Тук, FS Променливата (Field Separator) се използва за дефиниране на разделителя на полето на файла.

$ cat потребители.текст
$ awk 'print $ 1' FS = '\ t' потребители.текст

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

Пример-3: Отпечатайте третата колона на файл, разделен с табулатори, с форматиране

Следващата команда 'sed' ще отпечата третата колона на текстовия файл, разделен с табулатори, с форматиране с помощта на FS променлива и printf. Ето, FS променливата се използва за дефиниране на разделителя на полето на файла.

$ cat потребители.текст
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3' потребители.текст

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

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

OFS (Output Field Separator) се използва за добавяне на разделител на поле в изхода. Следващата команда 'awk' ще раздели съдържанието на файла въз основа на разделител tab (\ t) и ще отпечата третата и четвъртата колона, като използва раздела (\ t) като разделител.

$ cat потребители.текст
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("изход.txt ")" потребители.текст
$ котка изход.текст

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

Пример-5: Заместете конкретното съдържание на файла, разделен с табулатори

функцията sub () се използва в 'awk за команда за заместване. Следващата команда 'awk' ще търси числото 45 и ще замени с числото 90, ако номерът за търсене съществува във файла. След заместването съдържанието на файла ще се съхранява в изхода.txt файл.

$ cat потребители.текст
$ awk -F "\ t" 'sub (/ 45 /, 90); print' потребители.txt> изход.текст
$ котка изход.текст

След изпълнението на горните команди ще се появи следният изход. Резултатът.txt файлът показва модифицираното съдържание след прилагане на заместването. Тук съдържанието на 5-ия ред се е променило и „arnob45“ се променя на „arnob90“.

Пример-6: Добавете низ в началото на всеки ред на файл с разделители

По-нататък, командата 'awk', опцията '-F' се използва за разделяне на съдържанието на файла въз основа на раздела (\ t). OFS използва за добавяне на запетая (,) като разделител на поле в изхода. функцията sub () се използва за добавяне на низа '- →' в началото на всеки ред от изхода.

$ cat потребители.текст
$ awk -F "\ t" 'OFS = ","; под (/ ^ /, "---->"); отпечатайте $ 1, $ 2, $ 3 потребители.текст

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

Пример-7: Заменете стойността на файл, разделен с табулатори, като използвате функцията gsub ()

Функцията gsub () се използва в командата 'awk' за глобално заместване. Всички низови стойности на файла ще заменят мястото, където шаблонът за търсене съвпада. Основната разлика между функциите sub () и gsub () е, че функцията sub () спира задачата за заместване след намиране на първото съвпадение, а функцията gsub () търси модела в края на файла за заместване. Следващата команда "awk" ще търси думата "nila" и "Mira" глобално във файла и ще замести всички случаи с текста "Invalid Name", където търсещата дума съвпада.

$ cat потребители.текст
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Невалидно име"); print 'потребители.текст

След изпълнението на горните команди ще се появи следният изход. Думата „nila“ съществува два пъти в 3-ия ред на файла, който е заменен с думата „Invalid Name“ в изхода.

Пример-8: Отпечатайте форматираното съдържание от файл с разделители

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

$ cat потребители.текст
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2 потребители.текст

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

Заключение

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

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...