LINUX.ORG.RU

Помгите написать баш скрипт


0

0

Есть папка, её содержимое выглядит где-то так:

Dricetory 1/

Vol 1/
arcive 001/
..
archive s02/

Vol 2/
...

Мне нужно извлечь номера архивов(первый и последний без «s», первый и последний c «s»). Беда в том что я не знаю как обрезать имя файла,оставив только номер, и не знаю как отфильтровать с помощью grep номера без «s»(отфильтровать с «s» ls -1d */ | grep «archive s»)...

Спасибо.


Первый с s:
ls -1d */ | grep «archive s» | grep -o '[0-9]*' | sort -n | head -1
последний с s:
ls -1d */ | grep «archive s» | grep -o '[0-9]*' | sort -n | tail -1

первый без s:
ls -1d */ | grep -v «archive s» | grep -o '[0-9]*' | sort -n | head -1
последний без s:
ls -1d */ | grep -v «archive s» | grep -o '[0-9]*' | sort -n | tail -1

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

>первый без s:

ls -1d */ | grep -v «archive s» | grep -o '[0-9]*' | sort -n | head -1

последний без s:


ls -1d */ | grep -v «archive s» | grep -o '[0-9]*' | sort -n | tail -1



Это и всякие Vol 2 посчитает до кучи :)

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

>Это и всякие Vol 2 посчитает до кучи :)
В смысле?

Andaril
() автор топика
Ответ на: комментарий от AITap

sort -n по-моему не нужен...

grep -o '[0-9]*' чтобы вывести только номер?

Кстати что бы сделал если б у него был .zip на конце?

Andaril
() автор топика
Ответ на: комментарий от Andaril

>Кстати что бы сделал если б у него был .zip на конце?

Как оказалось grep -o '[0-9]*' отсеивает и точки и черточки.)

Andaril
() автор топика
Ответ на: комментарий от Andaril

> grep -o '[0-9]*' чтобы вывести только номер?
Показывает только цифры из всей данной строки.

если б у него был .zip на конце

Извлёк бы только цифры и сортировал бы на здоровье.

AITap ★★★★★
()

ИМХО, лучше делать «grep 'arcive [0-9]», так как «grep -v» выведет любой файл, не содержащий «arcive s» и если в «Vol x» случайно будет файл с именем, допустим, «bar», то он попадёт в вывод и приведёт к ошибке...

А вместо «ls ... | grep» можно использовать find, допустим «find -iname 'archive s*'»

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