Cut или awk для печати первого поля первой строки
Я пытаюсь напечатать первое поле первой строки вывода. Вот так. Мне просто нужно распечатать только SUSE
из этого вывода.
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
Пробовал cat /etc/*release | awk {'print $1}'
, но напечатал первую строку каждой строки
SUSE
VERSION
PATCHLEVEL
Ответы
Ответ 1
Укажите NR
если вы хотите захватить выходные данные из выбранных строк:
awk 'NR==1{print $1}' /etc/*release
Альтернативный (безобразный) способ достижения того же самого будет:
awk '{print $1; exit}'
Эффективный способ получения первой строки из конкретной строки, скажем, строки 42, в выходных данных будет:
awk 'NR==42{print $1; exit}'
Ответ 2
Укажите Номер строки с помощью встроенной переменной NR
.
awk 'NR==1{print $1}' /etc/*release
Ответ 3
попробуйте следующее:
head -1 /etc/*release | awk '{print $1}'
Ответ 4
sed -n 1p /etc/*release |cut -d " " -f1
если табуляция ограничена:
sed -n 1p /etc/*release |cut -f1
Ответ 5
awk, sed, pipe, этот тяжелый
set `cat /etc/*release`; echo $1
Ответ 6
Вы можете использовать head
вместо cat
:
head -n1 /etc/*release | awk '{print $1}'
Ответ 7
Try
sed 'NUMq;d' /etc/*release | awk {'print $1}'
где NUM - номер строки
ex. sed '1q;d' /etc/*release | awk {'print $1}'