С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354

Как разобрать вывод команды "ls -1 *"

16.09.2025, 21:42. Показов 875. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Если я в скрипте на bash сохраняю вывод команды "ls -1 *" в файле и птом читаю его построчно функцией "while read flnm",
то с этим никаких трудностей, а как обойтись без записи в файл? Приспособить этот вывод к while или к for мне не удалось,
принимается сразу всё, м.б., для этого есть какой-нибудь приём?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2025, 21:42
Ответы с готовыми решениями:

Разобраться в командах терминала Linux
Извините если не в ту тему Нужно кое что сделать в терминале Линукса часть я уже сделал, но в...

Не могу разобраться с командой
Первый раз столкнулся с регулярным выражением при архивации: tar -cvzf $Value1 * .* Насколько...

Как перенаправить вывод команды на экран и в файл одновременно?
В общем ситуация такая: есть команда, например date. Необходимо перенаправить ее вывод на экран и в...

19
 Аватар для Pphantom
2262 / 1518 / 712
Регистрация: 17.03.2022
Сообщений: 4,884
16.09.2025, 23:25
Что конкретно вы хотите таким образом сделать? Попробуйте описать исходную задачу: есть сильное подозрение, что она решается более простыми методами, чем тот, который вы пытаетесь найти.
0
Невнимательный
 Аватар для ft4l
3106 / 1275 / 358
Регистрация: 08.02.2013
Сообщений: 7,421
Записей в блоге: 2
17.09.2025, 01:16
Цитата Сообщение от peter_irich Посмотреть сообщение
for мне не удалось
Code
1
2
3
4
5
6
7
8
9
10
11
12
$ cat <<\X | bash
for file in `ls -1`
do
 echo --- $file
done
X
--- aaa.txt
--- Desktop
--- Documents
--- Downloads
--- IpTvPlayer.m3u
...
the same
$ for file in `ls -1`; do echo --- $file; done

Добавлено через 19 минут
$ ls -1 | xargs -n 1 echo ---
--- aaa.txt
--- Desktop
--- Documents
--- Downloads
--- IpTvPlayer.m3u
...
0
Эксперт NIX
3303 / 932 / 200
Регистрация: 14.01.2013
Сообщений: 4,768
17.09.2025, 05:42
Лучший ответ Сообщение было отмечено Pphantom как решение

Решение

Цитата Сообщение от peter_irich Посмотреть сообщение
как обойтись без записи в файл?
Поместить выхлоп в массив. А если заюзать не ls, а find, то там вообще бездна вариантов откроется.
1
Windows must die
665 / 836 / 102
Регистрация: 23.11.2021
Сообщений: 4,861
Записей в блоге: 15
17.09.2025, 08:12
Почитай man xargs
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,829
17.09.2025, 15:26
Ключевыми условиями для действительности чтения man xargs являются :
  • чистое место
  • покрытие тела
  • обращение в правильном направлении
  • правильное положение тела
0
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354
17.09.2025, 21:43  [ТС]
Благодарю за советы насчёт записи в массив и использования xargs. Использовать массив я предполагал, но ещё не пробовал,
об xargs не вспомнил.
Что касается того, что мне надо получить - чтобы, как при построчном чтениии из файла, так же можно было построчно читать вывод
команды "ls -1 *". Массивы я иногда использую, но там бывают трудности. Когда получу желаемый результат, то сообщу.
Возможно, проще будет с xargs. Ещё раз благодарю за внимание.

Добавлено через 2 минуты
ft4l, вроде бы я так и пробовал с for, но желаемое не получилось. Проверю ещё раз.
0
Windows must die
665 / 836 / 102
Регистрация: 23.11.2021
Сообщений: 4,861
Записей в блоге: 15
17.09.2025, 21:58
peter_irich, если какая-нибудь редиска в пути засунула пробелы и прочие запрещенные символы (в т.ч. кириллицу и не только), могут быть проблемы. Почитай, в чем разница между "$*" и "$@".
Но, если xargs будет нулями разделять и соответствующим образом IFS настроить, наверное, косяков быть не должно. Разве только при выходе за рамки ASCII.
0
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354
18.09.2025, 10:07  [ТС]
Eddy_Em, нет, в путях пробелов не было и вообще это делалось в текущем каталоге. И вывод "ls -1 *" и так разделяется
символами '\n'.

Добавлено через 1 час 30 минут
Всё оказалось проще, сработал такой вариант:
Bash
1
2
3
4
5
6
#!/bin/bash
 
`echo -e /bin/ls -1 "*"` | while read flnm
 do
 echo -e "$flnm"
done
Двойные апострофы нужны, если в именах файлов и каталогов могут быть пробелы, в моём случае они есть.
1
 Аватар для Pphantom
2262 / 1518 / 712
Регистрация: 17.03.2022
Сообщений: 4,884
18.09.2025, 10:10
Цитата Сообщение от peter_irich Посмотреть сообщение
Что касается того, что мне надо получить - чтобы, как при построчном чтениии из файла, так же можно было построчно читать вывод
команды "ls -1 *".
Это явно не то, что надо, это некоторая промежуточная цель.

В общем, подсказку выше уже дали: перебор файлов с какой-то целью резко проще делается с помощью find.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,829
18.09.2025, 12:54
Bash
1
2
#!/usr/bin/env perl
print for `ls -1`
0
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354
18.09.2025, 13:38  [ТС]
Pphantom, использовать find для такой простой задачи не рационально, я обычно стараюсь сделать попроще.
На perl никогда не писал.
0
 Аватар для Pphantom
2262 / 1518 / 712
Регистрация: 17.03.2022
Сообщений: 4,884
18.09.2025, 13:52
Цитата Сообщение от peter_irich Посмотреть сообщение
использовать find для такой простой задачи не рационально, я обычно стараюсь сделать попроще.
Это и есть самый простой способ.
0
Невнимательный
 Аватар для ft4l
3106 / 1275 / 358
Регистрация: 08.02.2013
Сообщений: 7,421
Записей в блоге: 2
18.09.2025, 13:59
Цитата Сообщение от peter_irich Посмотреть сообщение
Двойные апострофы нужны, если в именах файлов
Да вроде без них норм работает ls -1 | while read flnm; do echo --- $flnm; done
... в отличии от моих попыток,) если сделать touch './фыв апр.txt'
0
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354
18.09.2025, 21:37  [ТС]
ft4l, у меня без них не работало правильно.

Добавлено через 1 минуту
Pphantom, это в записи самый простой, т.е. для меня, а программа find должна быть сложнее ls.
0
 Аватар для Pphantom
2262 / 1518 / 712
Регистрация: 17.03.2022
Сообщений: 4,884
18.09.2025, 23:09
Цитата Сообщение от peter_irich Посмотреть сообщение
это в записи самый простой, т.е. для меня, а программа find должна быть сложнее ls.
А вам хочется страданий и сложностей? Ну хорошо, конечно, каждому свое, но это надо бы оговаривать при постановке задачи.
0
 Аватар для peter_irich
364 / 220 / 53
Регистрация: 18.10.2017
Сообщений: 2,354
19.09.2025, 09:04  [ТС]
Pphantom, мне хочется, чтобы программа или скрипт были эффективными и не потребляли лишних ресурсов.
0
Windows must die
665 / 836 / 102
Регистрация: 23.11.2021
Сообщений: 4,861
Записей в блоге: 15
19.09.2025, 09:31
Цитата Сообщение от peter_irich Посмотреть сообщение
были эффективными и не потребляли лишних ресурсов
Ну так и запускай ночью по крону rsync…
Подозреваю, в конце-концов именно к этому и сведется.
1
 Аватар для Pphantom
2262 / 1518 / 712
Регистрация: 17.03.2022
Сообщений: 4,884
19.09.2025, 09:38
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Подозреваю, в конце-концов именно к этому и сведется.
Да, мне тоже так кажется, потому я и просил написать конечную цель всех этих действий.

Если так, то будет особенно забавно, поскольку для rsync (и многих других аналогичных целей) желаемый ТС список вообще не нужен, вне зависимости от того, как его получать.
0
322 / 47 / 11
Регистрация: 08.04.2022
Сообщений: 187
22.09.2025, 08:53
Из своего опыта посоветую.

1. для большинства случаем можно использовать шаблоны в цикле или пайпе, например:
for f in *, или
ls | while read -r f, или
ls | xargs -IX команда опции X

2. отключить сортировку - не падает при обработке очень большого количества файлов (сотни тысяч):
ls -U,
ls --sort=none

3. иногда find лучше, хотя и многословнее, но допускает больше возможностей по выборке требуемых файлов:
find -mindepth 1 -maxdepth 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2025, 08:53
Помогаю со студенческими работами здесь

Как сохранить вывод команд, пользуясь утилитой dd
Здравствуйте. Подскажите, как сохранить вывод 2-х команд: &quot;uname -a&quot; и &quot;cat /pro/version&quot;, с...

Не работает вывод команд в Linux 2.4.37
Здравствуйте ! У меня есть роутер под Linux DD-WRT 2.4.37 #6136 Tue Jul 21 04:15:16 CEST 2009 mips...

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

Парсинг вывода команды last - вывод только новых строк
Задача следующая: есть вывод команды последних залогинившихся юзеров sh-4.1# last vipnet ...

Вывод процессов по их параметрам командой top
Подскажите вот по этим вопросам: 1.С помощью команды top получить список 5 процессов, потребляющих...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru