вывод файла с определённой строки

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-15 15:32:05

собственно как во фре вывести все строки файла, начиная, ну скажем, с четвёртой?

в общем-то нужна конкретная команда

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-15 15:38:32

пока сделал так

Код: Выделить всё

sed '1,4d'

MAK
ст. сержант
Сообщения: 344
Зарегистрирован: 2008-09-17 2:23:21

Re: вывод файла с определённой строки

Непрочитанное сообщение MAK » 2009-02-15 21:07:11

а чем сед не устроил?

Гость
проходил мимо

Re: вывод файла с определённой строки

Непрочитанное сообщение Гость » 2009-02-15 21:32:50

zg писал(а):пока сделал так

Код: Выделить всё

sed '1,4d'
более правильно скорее
sed -n '4,$p' <fileName>
или
sed '#n
4,$p' <fileName>

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-15 22:14:19

MAK писал(а):а чем сед не устроил?
слишком мощный -))
Гость писал(а):более правильно скорее
сед не хотелось бы использовать

Гость
проходил мимо

Re: вывод файла с определённой строки

Непрочитанное сообщение Гость » 2009-02-15 23:02:07

zg писал(а):слишком мощный -))
да упокоятся мощи усопших...

Код: Выделить всё

> du -Ash `which sed tail head ed awk`
 33K    /usr/bin/sed
 21K    /usr/bin/tail
7.5K    /usr/bin/head
 52K    /bin/ed
134K    /usr/bin/awk
zg писал(а):сед не хотелось бы использовать
а в каком контексте sed(1) не годится? Можно и на чистом sh(1) без внешних команд...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-16 7:18:15

Гость писал(а):а в каком контексте sed(1) не годится?
слишком большой функционал -)
Гость писал(а):да упокоятся мощи усопших...
-))) важен не размер, а функционал

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: вывод файла с определённой строки

Непрочитанное сообщение RusBiT » 2009-02-24 17:31:00

А как можно узнать номер текющей строки в скрипте?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Гость
проходил мимо

Re: вывод файла с определённой строки

Непрочитанное сообщение Гость » 2009-02-25 5:50:44

RusBiT писал(а):А как можно узнать номер текющей строки в скрипте?

Код: Выделить всё

echo $LINENO

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: вывод файла с определённой строки

Непрочитанное сообщение RusBiT » 2009-02-27 6:02:43

Это для bash, у меня sh
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-27 14:58:20

шелл вроде такого не умеет, утверждать не буду, но в мане ничего на эту тему не нашёл

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: вывод файла с определённой строки

Непрочитанное сообщение RusBiT » 2009-02-27 16:45:08

zg писал(а):шелл вроде такого не умеет, утверждать не буду, но в мане ничего на эту тему не нашёл
Долго гуглили - тоже не нашел ничего .
А при чтении файла можно вывести следующию строку как нибудь?

Просто quagga не передает маршруты ядру, пишу скриптик, но попадаются такие строки

Код: Выделить всё

*> 213.228.111.192/27
                    84.22.159.22                           0 33991 64534 i
Как бы в консоль они не влазят и переносятся, вот хотелось бы что эту строку превратить в одну :smile:
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-27 17:29:57

RusBiT писал(а):А при чтении файла можно вывести следующию строку как нибудь?
гм.. лучше создай отдельную тему и выложи всё необходимое, а то тут потонем

Аватара пользователя
tango
Access Forbidden
Сообщения: 247
Зарегистрирован: 2007-12-15 17:41:18
Откуда: Санкт- Петербург
Контактная информация:

Re: вывод файла с определённой строки

Непрочитанное сообщение tango » 2009-02-27 19:20:39

RusBiT писал(а):А как можно узнать номер текющей строки в скрипте?
Вывести номера строк:
sed = имя_файла | sed 'N;s/\n/\t/'

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: вывод файла с определённой строки

Непрочитанное сообщение zg » 2009-02-27 19:25:07

tango писал(а):
RusBiT писал(а):А как можно узнать номер текющей строки в скрипте?
Вывести номера строк:
sed = имя_файла | sed 'N;s/\n/\t/'
гм.. это умеет и cat, сед тут не нужен

Код: Выделить всё

zg# cat -n /etc/login.conf | tail
   312  #subshell|Shell Subscriber Accounts:\
   313  #       :tc=subscriber:
   314  #
   315  ##
   316  ## If you want some of the accounts to use traditional UNIX DES based
   317  ## password hashes.
   318  ##
   319  #des_users:\
   320  #       :passwd_format=des:\
   321  #       :tc=default:
zg#

Гость
проходил мимо

Re: вывод файла с определённой строки

Непрочитанное сообщение Гость » 2009-02-28 5:43:04

RusBiT писал(а):Это для bash, у меня sh

Код: Выделить всё

------------------------------------------------------------------------
r179387 | stefanf | 2008-05-29 01:44:32 +0400 (Thu, 29 May 2008) | 5 lines
Changed paths:
   M /head/bin/sh/parser.c

Fix checking if a variable name is LINENO.  As STPUTC changes the pointer if it
needs to enlarge the buffer, we must not keep a pointer to the beginning.

PR:     ports/123879

------------------------------------------------------------------------
r179022 | stefanf | 2008-05-15 23:55:27 +0400 (Thu, 15 May 2008) | 8 lines
Changed paths:
   M /head/bin/sh/expand.c
   M /head/bin/sh/parser.c
   M /head/bin/sh/parser.h

Expand $LINENO to the current line number.  This is required by SUSv3's "User
Portability Utilities" option.

Often configure scripts generated by the autotools test if $LINENO works and
refuse to use /bin/sh if not.

Package test run by:    pav
MFC в 7-STABLE был в августе, а также $LINENO присутствует в RELEASE_7_1
в 6-STABLE и ни в одном релизе 6-ой ветки такого нет