Awk

Как напечатать первый или последний столбец или оба столбца с помощью awk

Как напечатать первый или последний столбец или оба столбца с помощью awk

Команда Linux awk - это мощная утилита для различных операций с текстовыми файлами, таких как поиск, замена и печать. Его легко использовать с табличными данными, поскольку он автоматически разделяет каждую строку на поля или столбцы на основе разделителя полей. Когда вы работаете с текстовым файлом, содержащим табличные данные, и хотите распечатать данные определенного столбца, лучшим вариантом будет команда awk. В этом руководстве мы покажем вам, как напечатать первый столбец и / или последний столбец строки или текстового файла.

Распечатать первый столбец и / или последний столбец вывода команды

Многие команды Linux, такие как команда ls, генерируют табличные данные. Здесь мы покажем вам, как напечатать первый столбец и / или последний столбец из вывода команды 'ls -l'.

Пример 1: Распечатать первый столбец вывода команды

Следующая команда 'awk' напечатает первый столбец из вывода команды 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ 1'

Следующий вывод будет произведен после выполнения вышеуказанных команд.

Пример 2: Распечатать последний столбец вывода команды

Следующая команда 'awk' напечатает последний столбец из вывода команды 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ NF'

Следующий вывод будет произведен после выполнения вышеуказанных команд.

Пример 3: Распечатать первый и последний столбцы вывода команды

Следующая команда 'awk' напечатает первый и последний столбцы из вывода команды 'ls -l'.

$ ls -l
$ ls -l | awk 'напечатать $ 1, $ NF'

Следующий вывод будет произведен после выполнения вышеуказанных команд.

Распечатать первый столбец и / или последний столбец текстового файла

Здесь мы покажем вам, как использовать команду awk для печати первого и / или последнего столбца текстового файла.

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

Чтобы следовать этому руководству, создайте текстовый файл с именем клиенты.текст со следующим содержанием. Файл содержит данные о клиентах трех типов: имя с идентификатором, адрес электронной почты и номер телефона. Символ табуляции (\ t) используется для разделения этих значений.

Имя Электронная почта Телефон
Джонатон Бинг - 1001 [адрес электронной почты] 01967456323
Майкл Джексон - 2006 [адрес электронной почты] 01756235643
Джанифер Лопес - 3029 [адрес электронной почты] 01822347865
Джон Авраам - 4235 j [адрес электронной почты защищен] 01590078452
Мир Саббир - 2756 [адрес электронной почты защищен] 01189523978

Пример 4: Распечатать первый столбец файла без использования разделителя полей

Если в команде awk не используется разделитель полей, то в качестве разделителя полей по умолчанию используется пробел. Следующая команда awk напечатает первый столбец с использованием разделителя по умолчанию.

$ cat клиенты.текст
$ awk 'print $ 1' клиенты.текст

Следующий вывод будет произведен после выполнения вышеуказанных команд. Обратите внимание, что в выходных данных отображается только имя клиента, поскольку пробел используется в качестве разделителя полей. Решение этой проблемы показано в следующем примере.

Пример 5: Распечатать первый столбец файла с разделителем

Здесь \ t используется как разделитель полей для печати первого столбца файла. Параметр '-F' используется для установки разделителя полей.

$ cat клиенты.текст
$ awk -F '\ t' 'print $ 1' клиенты.текст

Следующий вывод будет произведен после выполнения вышеуказанных команд. Содержимое файла разделено на три столбца на основе \ t. Таким образом, имя и идентификатор клиента печатаются в первом столбце. Если вы хотите напечатать имя клиента без идентификатора, перейдите к следующему примеру.


Если вы хотите напечатать имя клиента без идентификатора, вы должны использовать '-' в качестве разделителя полей. Следующая команда awk напечатает имя клиента только в первом столбце.

$ cat клиенты.текст
$ awk -F '-' 'print $ 1' клиенты.текст

Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод включает полные имена клиентов без их идентификаторов.

Пример 6: распечатать последний столбец файла

Следующая команда awk напечатает последний столбец клиентов.текст. Поскольку в команде не используется разделитель полей, пробел будет использоваться как разделитель полей.

$ cat клиенты.текст
$ awk 'print $ NF' клиенты.текст

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

Пример 7: Распечатать первый и последний столбцы файла

Следующая команда awk напечатает первый и последний столбцы клиентов.текст. Здесь табуляция (\ t) используется в качестве разделителя полей для разделения содержимого на столбцы. Здесь табуляция (\ t) используется как разделитель для вывода.

$ cat клиенты.текст
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' клиенты.текст

Следующий вывод появится после выполнения вышеуказанных команд. Содержимое разделено на три столбца символом \ t; первый столбец содержит имя и идентификатор клиента, а второй столбец содержит номер телефона. Первый и последний столбцы печатаются с использованием \ t в качестве разделителя.

Заключение

Команду awk можно применять по-разному, чтобы получить первый и / или последний столбец из любого вывода команды или из табличных данных. Важно отметить, что в команде требуется разделитель полей, и если он не указан, используется пробел.

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...