Вариант для распечатки |
Пред. тема | След. тема | ||
| Форум Программирование под UNIX (Shell скрипты) | |||
|---|---|---|---|
| Изначальное сообщение | [ Отслеживать ] | ||
| "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 10:37 | ||
Здравствуйте, подскажите, спасибо. GNU sed только -- остальные исполнение не поддерживают, по-моему. Типичное применение это скормить совпадения date. | ||
| Ответить | Правка | Cообщить модератору | ||
| Оглавление |
| Сообщения | [Сортировка по времени | RSS] |
| 1. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 11:17 | ||
Я перебрал наверное все известные мне варианты экранирования кавычек (и нашёл в поисковой системе некоторые странные). Ничего не получается. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 2. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (2), 30-Дек-20, 12:14 | ||
> Нас интересует value2 и им мы будем оперировать | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 3. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 12:27 | ||
Никакой каши. Должна получится исходная строка (.* включает все символы) и только совпадение имени с разрешённым расширением теряет кавычки и передаётся отдельно, скрипт потом возвращает искомое закавыченное значение и все остальные данные (.*), однако эти данные при этом теряют все кавычки ещё на этапе исполнения шелла в sed и не попадают в скрипт. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 4. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 12:33 | ||
Теряется именно в процессе исполнения что можно пронаблюдать отключив его: | ||
| Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору | ||
| 5. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от ACCA (ok), 30-Дек-20, 12:34 | ||
Господа студиозусы, вы слегка достали. Уже третий раз за месяц один и тот же вопрос. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 6. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от bagas (ok), 30-Дек-20, 12:38 | ||
> Господа студиозусы, вы слегка достали. Уже третий раз за месяц один и | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 7. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от ACCA (ok), 30-Дек-20, 12:43 | ||
Вот так и поговорили. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 8. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 12:44 | ||
Нет, нужен sed. Необходимо вычленить все строки с файлами, проверить чтобы эти файлы были разрешёнными, потом передать все совпавшие строки в скрипт в котором проверяется существование файла на диске и его данные такие как новое имя (и расширение), и пометить некорректные данные. С этим справляются элементарное регулярное выражение и сед. "Умники" с tr несколько раздражают. Задача максимально чётко описана. Подскажите как решить проболему, или проходите мимо. Спасибо. | ||
| Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору | ||
| 9. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от ACCA (ok), 30-Дек-20, 12:54 | ||
Ну, некоторые мышки плакали, кололись, но продолжали жрать кактус. Похвальная целеустремлённость. Эту бы энергию, да в мирных целях. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 10. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 12:59 | ||
Да ну какой входной поток? На входе файлы со скриптами, там любые данные в строках и их не нужно изменять как-либо. А вот данные (и файлы) к которым скрипты обращаются, можно и нужно обработать, найти потерянные на диске данные и пометить вовсе отсутствующие. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 11. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от ACCA (ok), 30-Дек-20, 13:17 | ||
Не путай тёплое с мягким. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 12. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 13:24 | ||
Форматирование там совершенно случайное и оно меня никак не интересует, это забота препроцессоров и компиляторов его потом разбирать. Меня интересуют только та часть, где происходит обращение к данным. Я могу эту часть проанализировать таким же однострочником и произвести замены в совпавших строках при необходимости. Просто признай неправоту и уходи, не надо хамить. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 13. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от bagas (ok), 30-Дек-20, 15:29 | ||
> Здравствуйте, подскажите, спасибо. GNU sed только -- остальные исполнение не поддерживают, | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 14. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 15:46 | ||
Данные (222.ext) нужно извлечь и обработать, но я так понимаю в sed нет условных операторов и поэтому используется шелл-однострочник, в который эта строка 222.ext и передаётся. Все остальные элементы строки должны оставаться без изменения. Дополнительным препятствием является то, что там будет разнообразные спецсимволы, которые совершенно нельзя трогать. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 15. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от bagas (ok), 30-Дек-20, 15:53 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 16. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 16:09 | ||
Получить из строки и заменить на другое (при необходимости). Задача модифицировать данные или оставить их в исходном виде уже решена отдельно, нам нужно только для каждой совпавшей строки передать 2 значения (текстовую ссылку на файл и совпавшее расширение файла) из неё в скрипт, после чего заменить всю строку на вывод скрипта. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 17. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от bagas (ok), 30-Дек-20, 18:04 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 18. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 18:17 | ||
Я уже несколько раз написал. Есть это: | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 19. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 30-Дек-20, 20:29 | ||
Пока переписал на выборку из файла всех путей этой регуляркой (референсы 2 и 3) и потом в цикле для каждой строки с путём inplace sed исправляет невалидные значения в этом файле. Теперь вместо gnu sed зависимость gnu bash, и эффективность пострадала -- файлы перечитываются миллионы раз. Почему я никак не могу экранировать ссылки в sed? Никогда меня ещё так не раздражали тупые вопросы в гугле: в выдаче что угодно, только не эта проблема. Уже не представляю, как сформулировать запрос, что бы хоть что-нибудь нашлось. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 20. "sed теряет кавычки и не хочет работать" | –1 +/– | |
| Сообщение от Аноним (20), 31-Дек-20, 10:08 | ||
> Я уже несколько раз написал. Есть это: | ||
| Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору | ||
| 21. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 31-Дек-20, 10:40 | ||
Да, спасибо (нет). Пробелов там не будет, там будут всякие call(123, "arg", 0.1, "path/file.ext") и path="path/file.ext" в _произвольной_ части строки. Но, можно зацепиться за то, что упоминания файлов можно как-то идентифицировать, что я и сделал. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 22. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (20), 31-Дек-20, 11:04 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 23. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 31-Дек-20, 11:44 | ||
Там разное число элементов. Может быть вообще 1 на всю строку, а может быть и 2. И это не то, о чём был вопрос. В общем, это обсуждение в этом топике в очередной раз иллюстрирует уровень сегодняшнего рунета. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 25. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от markus (?), 02-Янв-21, 11:29 | ||
> Там разное число элементов. Может быть вообще 1 на всю строку, а | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 26. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 02-Янв-21, 13:29 | ||
Ну так я хочу, чтобы "исполнение команды" в sed не проглатывало кавычки. О чём и сообщил уже раз 15. Очевидно, что я не хочу tr и jq, которые мне ничем не помогут. Чем задача не правильная, разве она не была сформулирована вполне конкретно? Проблема тут только в "читателях". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 24. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от markus (?), 02-Янв-21, 11:27 | ||
>[оверквотинг удален] | ||
| Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору | ||
| 27. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 02-Янв-21, 13:41 | ||
Если у вас проблемы с восприятием, это же не значит, что они есть у всех. Я привёл пример кода, достаточно иллюстрирующий суть проблемы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 28. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 02-Янв-21, 13:51 | ||
Ещё можно использовать bison и компанию. Да, можно сделать хорошо, даже лучше, более узкоспециализированно. Но зачем, если ссылка "никогда" не будет разбита на несколько строк? Это в принципе достаточно невероятная ситуация, на практике повстречать такой код не придётся действительно никогда. Sed более чем достаточно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 29. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (29), 03-Янв-21, 18:34 | ||
Не уверен что правильно понял задачу, но возможно это как-то поможет: | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 30. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 03-Янв-21, 18:51 | ||
Как вариант. Ещё использую со страницами, там кавычки вообще заменены на " и можно так с ними и работать или же перегонять в другие кавычки. Вопрос "проглатывания" принципиально не решаемый? Неужели они не подумали о том, что ссылки как-то нужно защищать от подобного? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 31. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (0), 03-Янв-21, 18:52 | ||
Заменены на & quot; //fix | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 32. "sed теряет кавычки и не хочет работать" | +/– | |
| Сообщение от Аноним (29), 03-Янв-21, 20:27 | ||
Двойные кавычки съедает echo, а не sed. Чтобы он этого не делал, нужно передать ему строку, заключённую в одинарные кавычки. Но поскольку всё это уже находится в одинарных кавычках, то, чтобы шелл правильно всё распарсил, нужна такая последовательность (один из вариантов): '"'"' | ||
| Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору | ||
|
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |