awk '{ c=NR%n; a[c]=$0 } END{ for(i=1; i<=n; i++) print a[(c+i)%n] }' n=10 File


Команда awk ‘{ c=nr%n; a[c]=$0 } end{ for(i=1; i<=n; i++) print a[(c+i)%n] }' n=10 file выполняет эмуляцию команды tail с использованием awk.

Описание:
— AWK — это утилита командной строки, которая предназначена для обработки текстовых данных. В данном случае она используется для эмуляции команды tail.
— '{ c=nr%n; a[c]=$0 }' — эта часть кода устанавливает переменные c и a для каждой строки в файле. Переменная c — это остаток от деления номера текущей строки на число n, а переменная a[c] содержит содержимое строки.
— 'end{ for(i=1; i<=n; i++) print a[(c+i)%n] }' — эта часть кода выводит строки в обратном порядке, начиная с последней строки файла. Она использует массив a[c], чтобы хранить содержимое каждой строки, и цикл for для вывода строк в обратном порядке.
— n=10 — аргумент n указывает количество строк, которые необходимо вывести. В данном случае это 10 строк.
— file — аргумент file указывает на файл, который будет обработан. Вам нужно заменить file на путь и имя вашего файла.

Команда awk с помощью данного скрипта может быть полезна для быстрой эмуляции команды tail вместо использования самой команды tail. Альтернативой данной команде может быть использование команды tail -n 10 file, которая также выводит последние 10 строк из файла.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *