Anonymous
для одного раза можно грепнуть по-моему
Надо из файла вытащить все строки начинающиеся с "secret". Если грепом в .sh можно это сделать - буду рад выслушать предложение
Anonymous
вот же
Спасибо
Aleksei
либо приведи пример, так сложно в общих чертах отвечать
Aleksei
типа вот есть такие 4 строки. надо достать две эти. или их вот эту часть
Anonymous
grep '^secret' /path/to/file
'^secret' что делает?
Late
'^secret' что делает?
маркер начала строки и далее 6 символов ищет.
Sergey
'^secret' что делает?
Шаблон, который говорит, что нужно искать все строки, начинающиеся с secret
Anonymous
маркер начала строки и далее 6 символов ищет.
А можно ли указать до конца строки? Т.е. идет так: secret=password
Aleksei
тут уже регэкспами
Aleksei
только зачем?
Sergey
А можно ли указать до конца строки? Т.е. идет так: secret=password
Именно эту строку? Или password здесь — произвольный набор символов любой длины?
Aleksei
в смысле, почему просто ^secret не подходит?
Late
А можно ли указать до конца строки? Т.е. идет так: secret=password
вообще такое чувство что вам надо в python beginners отправиться, заодно и питону обучитесь, и поспрашиваете вопросы всякие в нужном месте
Sergey
Произвольный
grep '^secret=.*' /path/to/file
Sergei
Понтовые перцы делают это регулярками.
Sergey
Понтовые перцы делают это регулярками.
А потом их увольняют и переписывают это на питон)
Sergei
А потом их увольняют и переписывают это на питон)
Так на пистоне регулярками же. Модуль re весьма удобен, чтобы разбирать строки.
Sergei
Там они не в пример более читаемые, нежели в грепе
Это скорее от редактора и его подсветки синтаксиса зависит, но да, это тоже.
Anonymous
grep '^secret=.*' /path/to/file
Плюет в меня ошибку:
Aleksei
сразу направь в файл
Aleksei
grep '^secret=.*' /path/to/file > res.txt
Sergey
Плюет в меня ошибку:
Во-первых, ты потерял точку перед звездочкой Во-вторых, часть шаблона .* как раз соответствует последовательности любых символов любой длины
Sergey
Плюет в меня ошибку:
Оберни $(command) в двочные кавычки: "
Sergey
Ну и вообще, если ты собрался эти строки перебирать и как-то дальше обрабатывать, то складывать их нужно в массив А массивы в баше это то еще извращение
Aleksei
А если будет просто secret?
вот я его спросил, есть ли что-то такое, но он молчит
Late
Та не, эти строки надо записать в файл res.txt в столбик
а если бы ты на питоне скрипт писал, уже давно бы все сделал.
Sergey
Та не, эти строки надо записать в файл res.txt в столбик
Тогда тут тебе правильно подсказали https://t.me/russianfedora/480621
Anonymous
Late
И волосы бы стали более шелковистыми
и биотоки нормализовались бы
Anonymous
не увидел ответа
Прошу прощения. Не заметил Вашего сообщения! Дело в том, что есть secret пользователя, а есть точно такой же secret у приложения подключения. Надо стырить строки secret только у пользователей
Anonymous
А в чем между ними разница?
secret у приложения служит для подключения к базе. secret у пользователя служит для входа в приложение (оно ебнутое, не спрашивай)
Anonymous
Нет, в файле запись секрета пользователя от секрета приложения чем отличается?
Тем, что секрет пользователя - 3 цифры, а секрет проги - длинущщщщий набор символов
Sergey
grep '^secret=[:digit:]{3}\>' /path/to/file > res.txt Покажет все секреты, которые равны трем любым цифрам
Sergey
Eugene
Почему здесь установка пакета произошла без sudo?
Sergey
Угу
Поправил https://t.me/russianfedora/480645
Aleksei
из группы wheel разрешает
Aleksei
все равно у тебя sudo есть, поэтому и не спросит
Sergey
Угу
Работает?
Aleksei
я понимаю, что надо спрашивать пароль (sudo же спрашивает)
Aleksei
если NOPASSWD не задан, конечно
Aleksei
Они и не в wheel группе
Vasiliy Glazov
я понимаю, что надо спрашивать пароль (sudo же спрашивает)
И 15 минут после ввода пароля не спрашивает. Может это тот же случай.
Sergey
Спасибо. [:digit:] - выборка цифр?
Да, любая цифра от 0 до 9
Anonymous
Ок. Спасибо
Vasiliy Glazov
[0-9] короче ;)
Eugene
способна ли она ответить y на вопросы
Aleksei
конец строки, предполагаю. Можно $ заменить
Pavel
Sergey
а \> зачем?
Говорит, что предыдущий символ завершает строку А предыдущий символ там последняя из трех цифр
Sergey
Не пашет
А так? grep '^secret=[:digit:]{3}$' /path/to/file > res.txt
Anonymous
А так? grep '^secret=[:digit:]{3}$' /path/to/file > res.txt
Кстати, ошибка: [[:digit:]], a не [:digit:]
Sergey
Кстати, ошибка: [[:digit:]], a не [:digit:]
После замены работает?
Sergey
Неа
Добавь -E после вызова грепа grep -E '^secret=[0-9]{3}$' /path/to/file > res.txt