Пример 1: Распечатать диапазон столбцов из вывода команды
Следующая команда напечатает второй, третий и четвертый столбцы из выходных данных команды, ‘Ls -l ‘. Здесь номера столбцов указаны явно, но в следующем примере показана более эффективная команда для печати того же диапазона столбцов.
$ls - | awk '{напечатайте $ 2, $ 3, $ 4}'
Следующий вывод создается приведенной выше командой.
Пример 2: Распечатать диапазон столбцов из файла с помощью для петля
Чтобы следовать этому примеру и другим примерам в этом руководстве, создайте текстовый файл с именем marks.txt со следующим содержанием :
ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 год 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Следующая команда `awk` напечатает первые три столбца marks.txt. В для Цикл используется для печати значений столбца, и цикл включает три шага. В NF переменная указывает общее количество полей или столбцов файла.
$Котmarks.txt$awk '{for (i = 1; i<=NF-1;i++) printf $i' '; print ''}'marks.txt
Следующий вывод будет произведен при запуске команды. На выходе студент ID и отметки для CSE203 а также CSE102 .
Пример 3: Распечатайте диапазон столбцов, указав начальную и конечную переменные
Следующая команда `awk` напечатает первые три столбца из вывода команды« ls -l », инициализируя начало а также окончание переменные. Здесь значение начало переменная равна 1, а значение окончание переменная равна 3. Эти переменные повторяются в цикле for для печати значений столбца.
$ls - | awk 'НАЧАТЬ {первый = 1; last = 3}{for (i = first; i
После выполнения команды появится следующий вывод. Вывод показывает первые три значения столбца вывода, «ls -l».
Пример 4: Распечатать диапазон столбцов из файла с форматированием
Следующая команда `awk` напечатает первые три столбца marks.txt с использованием printf и разделитель выходных полей ( OFS ). Здесь цикл for включает три шага, и из файла будут последовательно напечатаны три столбца. OFS здесь используется для добавления пробелов между столбцами. Когда значение счетчика цикла (i) равно окончание переменная, то создается новая строка ( n).
$Котmarks.txt$awk -v Начнитезнак равно1 -v конецзнак равно3 '{for (i = start; i<=end;i++) printf('%s%s',
$ i, (i == конец)? ' n': OFS)} 'marks.txt
Следующий вывод будет сгенерирован после выполнения вышеуказанных команд.
Пример 5: Распечатать диапазон столбцов из файла с помощью условного оператора
Следующая команда `awk` распечатает первый и последний столбцы из файла, используя цикл for и оператор if. Здесь цикл for включает четыре шага. В начало а также окончание переменные используются в сценарии для исключения второго и третьего столбцов из файла с помощью условия if. Переменная OFS используется для добавления пробела между столбцами, а переменная ORS используется для добавления новой строки ( n) после печати последнего столбца.
$Котmarks.txt$awk -v Начнитезнак равно2 -v конецзнак равно3 '{for (i = 1; i<=NF;i++)
if (i> = start && i<=end) continue;
else printf ('% s% s', $ i, (i! = NF)? OFS: ORS)} 'marks.txt
Следующий вывод появится после выполнения вышеуказанных команд. Вывод показывает первый и последний столбцы marks.txt.
Пример 6: Распечатать диапазон столбцов из файла с помощью переменной NF
Следующая команда `awk` распечатает первый и последний столбцы из файла, используя переменную NF. Для печати значений столбца не используются циклы или условные операторы. NF указывает количество полей. В marks.txt четыре столбца. $ (NF-3) определяет первый столбец, а $ NF указывает последний столбец.
$Котmarks.txt$awk '{print $ (NF-3)' '$ NF}'marks.txt
Следующий вывод получается при выполнении вышеуказанных команд. Вывод показывает первый и последний столбцы marks.txt.
Пример 7: Распечатать диапазон столбцов из файла с помощью substr () и index ()
Функция index () возвращает позицию, если значение второго аргумента существует в значении первого аргумента. Функция substr () может принимать три аргумента. Первый аргумент - это строковое значение, второй аргумент - начальная позиция, а третий аргумент - длина. Третий аргумент substr () опускается в следующей команде. Поскольку столбец в команде awk начинается с $ 1, функция index () вернет $ 3, а команда напечатает от $ 3 до $ 4.
$Котmarks.txt$awk '{print substr ($ 0, индекс ($ 0, $ 3))}'marks.txt
Следующий вывод будет получен при выполнении вышеуказанных команд.
Пример 8: Последовательная печать диапазона столбцов из файла с помощью printf
Следующая команда `awk` напечатает первый, второй и третий столбцы marks.txt, установив достаточно места для 10 символов.
$Котmarks.txt$awk '// {printf'% 10s% 10s% 10s n ', $ 1, $ 3, $ 2}'marks.txt
Следующий вывод будет получен при выполнении вышеуказанных команд.
Заключение
Существуют различные способы распечатать диапазон столбцов из вывода команды или файла. В этом руководстве показано, как команда awk может помочь пользователям Linux распечатать содержимое из табличных данных.