Команда 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 напечатает имя клиента только в первом столбце.
$ 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 можно применять по-разному, чтобы получить первый и / или последний столбец из любого вывода команды или из табличных данных. Важно отметить, что в команде требуется разделитель полей, и если он не указан, используется пробел.