Команда `awk` используется в Linux по-разному. Например, его можно использовать для печати содержимого текстового файла. Первая строка многих текстовых файлов содержит заголовок файла, и иногда первая строка должна быть пропущена при печати содержимого файла. В этом руководстве мы покажем вам, как выполнить эту задачу с помощью команды awk.
Создать текстовый файл
Чтобы следовать этому руководству, создайте текстовый файл с разделителями табуляции с именем booklist.txt со следующим содержанием. Этот файл содержит список книг с соответствующими авторами. В этом уроке мы покажем вам, как распечатать различные части этого файла, пропустив первую строку.
Кибербезопасность с bash Paul Troncone, Carl Albing
Командная строка Кунг-фу Джейсон Кэннон
Командная строка Linux Трэвис Бут
Баш легкими шагами Майк МакГрат
Unix: простые шаги Майк МакГрат
Пример 1. Пропустить первую строку файла с помощью NR и оператора ‘>’
Переменная NR указывает количество записей в файле. Следующая команда awk использует переменную NR для пропуска первой строки файла. Значение NR для первой строки равно 1. Следующая команда напечатает строки, для которых значение NR больше 1.
$Котbooklist.txt
$awk '(НЕТ> 1)'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод включает все строки, кроме первой строки файла.
Пример 2. Пропустите первую строку, используя NR и оператор ‘! =’
Следующая команда `awk` похожа на команду в предыдущем примере. Однако здесь используется оператор сравнения ‘! =’ Вместо ‘>’.
$Котbooklist.txt$awk 'NR! = 1'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод показывает все строки, кроме первой строки файла.
Пример 3: пропустить первую строку файла с помощью условного оператора
Следующая команда `awk` напечатает строки файла, если оператор if верен. Здесь оператор if будет верным только тогда, когда значение NR не равно 1.
$Котbooklist.txt$awk '{если (NR! = 1) {печать}}'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод включает все строки, кроме первой строки файла.
Пример 4: Вывести названия книг из файла, но пропустить первую строку
В этом примере используются две команды awk для вывода всех названий книг, кроме первой. Команда awk считывает первый столбец из файла на основе разделителя полей ( t) и отправляет результат второй команде awk. Вторая команда awk напечатает желаемый результат.
$Котbooklist.txt$awk -F ' т' '{печать $ 1}'booklist.txt| awk 'NR! = 1 печать}'
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод показывает все названия книг, кроме названия первой книги.
Пример 5: Отформатируйте содержимое файла после пропуска первой строки
Параметр ‘-F’, переменная NR и функция printf используются в следующей команде awk для генерации форматированного вывода после пропуска первой строки. Команда разделит содержимое файла на столбцы на основе t, а printf распечатает первый и второй столбцы, когда значение NR равно минимум 2.
$Котbooklist.txt$awk -F ' т' 'NR> = 2 {printf'% 30s% 20s n ', $ 1, $ 2}'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод показывает отформатированное содержимое файла, за исключением первой строки файла.
Пример 6. Распечатайте названия книг после пропуска первой строки, используя NR и NF.
Следующая команда `awk` использует параметр‘ -F ’и NR и NF для печати названий книг после пропуска первой книги. Параметр «-F» используется для разделения содержимого файловой базы по t. NR используется для пропуска первой строки, а NF используется для печати только первого столбца.
$Котbooklist.txt$awk -F ' т' 'NR> 1 && NF = 1'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод включает в себя все названия книг в файле, кроме названия первой книги.
Пример 7: Распечатайте отформатированные имена авторов после пропуска первой строки
Следующая команда `awk` использует параметр‘ -F ’и условный оператор для вывода имен авторов после пропуска первой строки. Здесь значение NR используется в условии if. Здесь имя автора: n n будет напечатано как первая строка вместо содержимого из первой строки. Имена авторов из файла будут напечатаны для других значений NR.
$Котbooklist.txt$awk -F ' т' '{if (NR == 1) printf' nИмя автора: n n '; иначе printf '% s n', $ 2} 'booklist.txt
Следующий вывод будет произведен после выполнения вышеуказанных команд. Вывод показывает текст «Имя автора:» с новой строкой, и печатаются все имена авторов, кроме первого.
Заключение
Первую строку файла можно пропустить с помощью различных команд Linux. Как показано в этом руководстве, есть разные способы пропустить первую строку файла с помощью команды `awk`. Примечательно, что переменная NR команды awk может использоваться для пропуска первой строки любого файла.