URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 52754
[ Назад ]

Исходное сообщение
"Как выбрать строки из файла ( freebsd )"

Отправлено Victor , 26-Янв-05 12:02 
Порылся в man, ничего не нашел.
Проблема такая: есть файл со строками, хочу из него выбрать, например, строки 800, 1768, 15323.
Есть ли какая-нибуль команда, которая выбирает строки из файла по номеру?
Из того, что сам надумал:

head -n <номер строки 1> /var/src/test1.txt | tail -n 1
head -n <номер строки 2> /var/src/test1.txt | tail -n 1
head -n <номер строки 3> /var/src/test1.txt | tail -n 1

работает, только если файл большой придется его много раз молотить

Второй вариант не заработал, а так хотелось:

cut -f <номер строки 1>,<номер строки 2>,<номер строки 3> -d "\n" /var/src/test1.txt

Может есть команда типа cut, чтоб ей номера строк задать и файл, а она из него строки выдала?


Содержание

Сообщения в этом обсуждении
"Как выбрать строки из файла ( freebsd )"
Отправлено lavr , 26-Янв-05 12:22 
>Порылся в man, ничего не нашел.
>Проблема такая: есть файл со строками, хочу из него выбрать, например, строки
>800, 1768, 15323.
>Есть ли какая-нибуль команда, которая выбирает строки из файла по номеру?
>Из того, что сам надумал:
>
>head -n <номер строки 1> /var/src/test1.txt | tail -n 1
>head -n <номер строки 2> /var/src/test1.txt | tail -n 1
>head -n <номер строки 3> /var/src/test1.txt | tail -n 1
>
>работает, только если файл большой придется его много раз молотить
>
>Второй вариант не заработал, а так хотелось:
>
>cut -f <номер строки 1>,<номер строки 2>,<номер строки 3> -d "\n" /var/src/test1.txt
>
>Может есть команда типа cut, чтоб ей номера строк задать и файл,
>а она из него строки выдала?


sed, awk, perl, cc...


"Как выбрать строки из файла ( freebsd )"
Отправлено Victor , 27-Янв-05 09:59 
>
>sed, awk, perl, cc...

Вот такие варианты придумал:

awk 'NR==10 || NR==16 { print $0 }' /var/src/test1.txt

sed -n -e '10p;16p' /var/src/test1.txt

Вроде работает. Правда медленнее, чем то, что у меня было написано на php. А думал, что будет быстрее. Ну да ладно.

А для таких же недалеких, как я вот нашел приятное место:

http://www-106.ibm.com/developerworks/linux/library/l-sed1.html