Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 10

Как найти файлы размером от 0 до 100 байт, желательно через awk/sed и регулярные выражениями

20.05.2020, 15:14. Показов 2119. Ответов 8

Студворк — интернет-сервис помощи студентам
Я пробовал вот так, выводит даже файлы больше 100.
Bash
1
wc -c ../* | awk '/[0-9][0-9][:space:]/{print $0}'
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2020, 15:14
Ответы с готовыми решениями:

sed or awk
есть строка вида document.write('Monitor\n'); как сделать вывод слова Monitor Спасибо.

Awk/sed с переменной
Привет, подскажите пожалуйста, как использовать awk или sed с переменной. Есть некая переменная массива arr, в конце которой нужно...

Awk/sed считать строки от конца
Как вывести строки файла, указывая диапазон от конца? Т.е. аналогично tail, но нужен не конец файла, а просто строки, которые отсчитаны...

8
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
20.05.2020, 20:39
Почему не через find?
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
20.05.2020, 21:42
Kenas002, awk по своей сути является языком программирования, поэтому если вы отметаете здравый глас Marinero об использовании find, стоит отметить чрезмерную изращенность реализовывать сие через регулярные выражения. И потом, как по вашему wc среагирует на папку? Не, с точки зрения устройства системы папка - тот же файл, только являющий собой табличное описание прочих файлов (утрированно), но wc то об этом ничего не знает и потому плюнет вам в лицо сообщение вроде
Code
1
wc: foo: Is a directory
Иначе говоря, если вы решили БДСМить, делайте это "правильно":
Bash
1
wc -c ../* | awk '{if($1 < 100) print $0}'
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
20.05.2020, 23:31
greg zakharov, позволю себе подсократить Ваше выражение
Bash
1
wc -c ../* | awk '$1 < 100'
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
21.05.2020, 17:18
Marinero, позволю себе исправить косяк с папками не учтенный выше.
Bash
1
wc -c ../* 2>/dev/null | awk '{if (system("[ -f " $2 " ]") == 0 && int($1)<100) print $0}'
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
21.05.2020, 19:14
Лучший ответ Сообщение было отмечено Kenas002 как решение

Решение

Цитата Сообщение от Kenas002 Посмотреть сообщение
Я пробовал вот так, выводит даже файлы больше 100.
1 wc -c ../* | awk '/[0-9][0-9][:space:]/{print $0}'
Сомневаюсь что выше приведенный пример может вообще что то вывести кроме ошибки.
В принципе тактический ход мысли правильный и кое что должно получится например если подправить
регулярное выражение. В шаблоне вы ограничиваете строку справа пробелом, а слева терминатора нет.
поэтому под это выражение попадет сколь угодно большая строка состоящая из цифр. Попробуйте такой
шаблон
Bash
1
/[[:space:]][0-9][0-9][[:space:]]/
Вот теперь под этот шаблон будут подпадать значения от 10 до 99. Чтобы фильтр захватил значения от нуля
необходимо сильно засомневаться в существовании одного цифрового символа поставав его под сомнение
квантификатором ?
Bash
1
/[[:space:]]/[0-9][0-9]?[[:space:]]/
Давайте уже попробуем избавить ваш вариант от ошибки, но не пойдем на поводу у пользователя @greg zakharov
а прикрутим к вашему велосипеду гусеницы от своего вездехода. Ошибка возникающая в первой команде попадает на монитор
минуя конвеер. Чтобы направить поток ошибок в конвеер где фильт в awk все равно их отфильтрует добавим "загагулинку" & амперсанд
Bash
1
wc -c ../* |& awk '/[[:space:]][0-9][0-9]?[[:space:]]/ {print $0}'
Ну и наведем немного лоска
Bash
1
wc -c ../* |& awk '/\s[0-9][0-9]?\s/ {print}'
Всё, скрипт починили, теперь можно его сжигать. Потому как на прямую считать размер файлов не через просмотр их метаданных
не совсем правильно, но тем не менее, мы получили рабочий вариант вашего наброска
1
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
21.05.2020, 19:19
Цитата Сообщение от nezabudka
Потому как на прямую считать размер файлов не через просмотр его метаданных
не совсем правильно
Точнее совсем неправильно, а если учесть еще ряд особенностей самого wc, тему вообще стоило бы прикрыть.
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
21.05.2020, 19:43
Цитата Сообщение от nezabudka Посмотреть сообщение
/[[:space:]]/[0-9][0-9]?[[:space:]]/
Совершила опечатку в одном шаблоне
Bash
1
/[[:space:]][0-9][0-9]?[[:space:]]/
Добавлено через 18 минут
Цитата Сообщение от Marinero Посмотреть сообщение
wc -c ../* | awk '$1 < 100'
А если прикрутить загагулинку к варианту от @Marinero, то можно замахнуться аж на 3 балла,
потому как вторая половина выражения вытянет оба echo $(((1+5)/2)). Получаем среднюю температуру по больнице
Bash
1
wc -c ../* |& awk '$1 < 100'
0
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 10
23.05.2020, 15:03  [ТС]
А зачем прикрывать тему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2020, 15:03
Помогаю со студенческими работами здесь

Вырезать строку между 2 позициями с помощью sed и awk
Коллеги, добрый день. Помогите, пожалуйста, не могу разобраться. Не помогает даже гугл, все, что нашел не работает. Есть строка на...

Поиск длинного слова используя grep, sed или awk
Написать скрипт с использованием grep, sed, awk (необходимо использовать не менее одной из указанных утилит; использовать все три...

Найти количество отрицательных чисел, одномерного массива размером 30 элементов, заполненного случайными числами из отрезка [-100;100]
Всем привет, нужна помощь с решением задачи. 2) Найдите количество отрицательных чисел, одномерного массива размером 30 элементов,...

Найти файлы больше 100мб с учетом жестких ссылок с использованием awk
Задание: найти все файлы больше 100мб в каталоге /usr с учетом жестких ссылок, то есть допустим в папке есть файл 101мб и две жестких...

Создать массив чисел из диапазона [-100;100] размером 180 000. Вывести на экран. Найти время выполнения программы
Создать одномерный массив вещественных чисел из диапазона размером 180 000. Вывести на экран. Найти время выполнения программы через...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru