Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Программирование под 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-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |