Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
4 / 4 / 2
Регистрация: 15.09.2013
Сообщений: 46

Подскажите, как оптимизировать команды ls и grep?

01.10.2013, 19:12. Показов 1522. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как можно (если можно) оптимизировать код? Нужно сначала вывести список диреторий, а потом файлов, а не все в перемешку.

У меня пока только такой код, но он, как мне кажется, медленно работает. Может быть как-то лучше поступить?

Bash
1
2
3
4
5
6
7
8
9
10
for param in `ls -F /$QUERY_STRING` ; do
if echo "$param" | egrep -q "/" ; then
echo $param
fi
done
for param in `ls -F /$QUERY_STRING` ; do
if echo "$param" | egrep -v -q "/" ; then
echo $param
fi
done
То есть получается два цикла. Может можно как-то один сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2013, 19:12
Ответы с готовыми решениями:

От-grep-ать вывод команды
Приветствую. Помогите от-grep-ать вывод команды. Задача такая. Исключить из списка строки, которые содержат IDLE и ALLOCATED, но IDLE+DRAIN...

Подскажите как оптимизировать
всем привет. ребят, подскажите как можно переписать это в лучших традициях ООП и как можно оптимизировать данный код. понятно что все...

подскажите, как оптимизировать код
Всем привет, js только начал изучать, но стоит вопрос..как не городить кучу кода, и оптимизировать данное...понимаю, что надо создать...

9
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
01.10.2013, 22:40
Code
1
2
3
[guest@localhost sh]$ ls -d --group-directories-first *e*
findfiles  sed  iters_meth.sh
[guest@localhost sh]$
0
4 / 4 / 2
Регистрация: 15.09.2013
Сообщений: 46
02.10.2013, 02:53  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
Code
1
2
3
[guest@localhost sh]$ ls -d --group-directories-first *e*
findfiles  sed  iters_meth.sh
[guest@localhost sh]$
а это на sh?
я просто новичек и совсем не понимаю что и как
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
02.10.2013, 07:04
Цитата Сообщение от lvovitch Посмотреть сообщение
а это на sh?
это одна команда ls, которая заменяет оба твоих цикла
опция --group-directories-first не входит в POSIX, поэтому во многих версиях ls (более старых или в других системах) её может не оказаться, и скрипт, в котором она использована, не сработает (её может не принять препод)
1
4 / 4 / 2
Регистрация: 15.09.2013
Сообщений: 46
02.10.2013, 10:57  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
это одна команда ls, которая заменяет оба твоих цикла
опция --group-directories-first не входит в POSIX, поэтому во многих версиях ls (более старых или в других системах) её может не оказаться, и скрипт, в котором она использована, не сработает (её может не принять препод)
да, похоже это как раз мой случай. У меня OpenWRT там похоже такого нет. Даже ls -d работает как-то странно... а сортировка не работает вообще.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
02.10.2013, 14:37
Цитата Сообщение от lvovitch Посмотреть сообщение
У меня пока только такой код, но он, как мне кажется, медленно работает.
не столько медленно, сколько в выводе содержится лишняя инфа (признаки файлов остаются)

попробуй так
Bash
1
2
3
for t in d f; do
    find -maxdepth 1 -type $t -printf "%f\n"
done
1
4 / 4 / 2
Регистрация: 15.09.2013
Сообщений: 46
03.10.2013, 13:13  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
не столько медленно, сколько в выводе содержится лишняя инфа (признаки файлов остаются)

попробуй так
Bash
1
2
3
for t in d f; do
    find -maxdepth 1 -type $t -printf "%f\n"
done
Заработало! Спасибо!!!
а что значит признаки файлов остаются?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
03.10.2013, 20:52
Цитата Сообщение от lvovitch Посмотреть сообщение
а что значит признаки файлов остаются?
ls -F дописывает признаки: к директориям - /, к исполняемым файлам - *, к символическим ссылкам - @, к сокетам - =, к именованным каналам - |, к дверям - >
но, так как вывод программ чаще всего используется и дальше и полученные имена должны быть пригодными для дальнейшего использования в программах, дописанных признаков там быть не должно, иначе имена не будут распознаваться в файловой системе
0
4 / 4 / 2
Регистрация: 15.09.2013
Сообщений: 46
03.10.2013, 22:01  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
ls -F дописывает признаки: к директориям - /, к исполняемым файлам - *, к символическим ссылкам - @, к сокетам - =, к именованным каналам - |, к дверям - >
но, так как вывод программ чаще всего используется и дальше и полученные имена должны быть пригодными для дальнейшего использования в программах, дописанных признаков там быть не должно, иначе имена не будут распознаваться в файловой системе
да, так и есть. я эти символы потом удаляю.
Кстати, а можно вывести через Ваш вариант с find эти символы?
Просто мне нужно потом рисовать иконки - для директорий иконку с папкой, а для фалов иконку с листком бумаги.
Вообще это я файл менеджер делаю через браузер
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
03.10.2013, 22:31
Цитата Сообщение от lvovitch Посмотреть сообщение
Кстати, а можно вывести через Ваш вариант с find эти символы?
все не выводит, но различить директорию и файл можно, добавив %y в форматную строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2013, 22:31
Помогаю со студенческими работами здесь

Подскажите как оптимизировать программу
Задача: найти все вхождения строки T в строке S. #include <stdio.h> #include <string.h> #define LENGTH 50001 int main(){ ...

Подскажите как оптимизировать код
Собственно вот... void CalcValue(dynamic e) { var rez = e.GetType(); if (rez.Name ==...

javascrip: подскажите как оптимизировать
ситуация такова(начну издалека): у меня есть список товаров(вернее, меню ) каждому товару соответствует айди в базе и т.д. Я делаю выборку...

Подскажите как оптимизировать сайт
Падскажите как вам сайт и что в нём исправить http://liveinternet.ru/click?httpliveinter....mylivepage.ru'...

Подскажите как оптимизировать код
Прошу помощи идей как оптимизировать код совсем нет public partial class RegistrationForm : Form { MySqlConnection...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru