LINUX.ORG.RU

Вывод имён определённого диапазона файлов

 


0

1

Есть каталог, содержащий в себе много файлов. Как более-менее элегантно при помощи shell получить список имён определенного диапазона файлов, например с 20 по 30 файл и так далее.

Заранее благодарю за ответ.

P.S.: Что-то типа ls /etc | tail -n 5, но позволяющее оперировать диапазонами. И желательно поэлегантней.

★★★★★

sed -n 2,4p

2- номер первой строки диапазон, 4 - номер последней строки диапазона:

ls -1 | sed -n 2,4p
В выводе будут имена файлов с 2 по 4 строки.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от anonymous

man head

и что? с каких пор head работает с диапазонами? он может вывести верхнюю часть списка, не более.

IPR ★★★★★ ()
Ответ на: комментарий от IPR
$ ls -1 /
bin
boot
dev
etc
home
include
lib
media
mnt
opt
proc
root
sbin
sys
tmp
usr
var
$ ls -1 / | sed -n 3,10p
dev
etc
home
include
lib
media
mnt
opt
$ ls -1 / | sed -n 11,15p
proc
root
sbin
sys
tmp
kostik87 ★★★★★ ()
Ответ на: комментарий от IPR

Либо как сказали выше используйте cut, либо средства командного интерпретатора, либо носите с собой статически собранный sed.

Но последний вариант, это, конечно, отчасти маразм, но это тоже вариант.

А что это у вас за целевые системы такие, случаем не специализированные мини дистрибутивы (сборки) linux на busybox, если да, то можно поступить так:

ln -s sed busybox

Это если, конечно, busybox собран с поддержкой sed и просто отсутствует символьная ссылка.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 2)

Всем спасибо за помощь.

IPR ★★★★★ ()
Ответ на: комментарий от IPR

ещё бы без седа :)

Если на них есть tail значит есть и head.

ls /etc | tail -n+20 | head -n10

выведет 10 файлов начиная с 20-го (с 20 по 30).

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.