- Я перебрал наверное все известные мне варианты экранирования кавычек и нашёл в , Аноним (1), 11:17 , 30-Дек-20 (1)
- чего получиться-то должно Или мы по каше должны догадаться предположу, что где-, Аноним (2), 12:14 , 30-Дек-20 (2)
- Господа студиозусы, вы слегка достали Уже третий раз за месяц один и тот же воп, ACCA (ok), 12:34 , 30-Дек-20 (5)
- Вам данные value2 с содержимым в двойных кавычках нужно убрать, остальное о, bagas (ok), 15:29 , 30-Дек-20 (13)
- Данные 222 ext нужно извлечь и обработать, но я так понимаю в sed нет условных, Аноним (1), 15:46 , 30-Дек-20 (14)
- gt оверквотинг удален Все равно не понял Что значит извлечь и обработать в ваш, bagas (ok), 15:53 , 30-Дек-20 (15)
- Получить из строки и заменить на другое при необходимости Задача модифицирова, Аноним (1), 16:09 , 30-Дек-20 (16)
- gt оверквотинг удален Напиши что есть и что должно получиться в итоге , bagas (ok), 18:04 , 30-Дек-20 (17)
- Я уже несколько раз написал Есть это code echo value1 111 value2 222 e, Аноним (1), 18:17 , 30-Дек-20 (18)
- Пока переписал на выборку из файла всех путей этой регуляркой референсы 2 и 3 , Аноним (1), 20:29 , 30-Дек-20 (19)
- code echo vlaue1 111 value2 222 ext value3 333 otherdata 124 sed -n s, Аноним (20), 10:08 , 31-Дек-20 (20) –1
- Да, спасибо нет Пробелов там не будет, там будут всякие call 123, arg , 0 1,, Аноним (1), 10:40 , 31-Дек-20 (21)
- gt оверквотинг удален Религия запрещает использовать в качестве разделителя _н, Аноним (20), 11:04 , 31-Дек-20 (22)
- Там разное число элементов Может быть вообще 1 на всю строку, а может быть и 2 , Аноним (1), 11:44 , 31-Дек-20 (23)
Там разное число элементов. Может быть вообще 1 на всю строку, а может быть и 2. И это не то, о чём был вопрос. В общем, это обсуждение в этом топике в очередной раз иллюстрирует уровень сегодняшнего рунета.
- Начни для начало с себя Начни правильно излагать задачу , markus (?), 11:29 , 02-Янв-21 (25)
> Там разное число элементов. Может быть вообще 1 на всю строку, а > может быть и 2. И это не то, о чём был > вопрос. В общем, это обсуждение в этом топике в очередной раз > иллюстрирует уровень сегодняшнего рунета.))) Начни для начало с себя! Начни правильно излагать задачу!!!
- [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (26) !
- gt оверквотинг удален Какие примеры коды Ты сам не понимаешь чего хочешь , markus (?), 11:27 , 02-Янв-21 (24)
>[оверквотинг удален] > 0.1, "path/file.ext") и path="path/file.ext" в _произвольной_ части строки. Но, можно > зацепиться за то, что упоминания файлов можно как-то идентифицировать, что я > и сделал. > Нужно именно то, что написано в ОП, а именно: исполнить команду шелла > и подставить в неё ссылки. И, поскольку выцепить все данные регуляркой > и заменить конкретно их я и так смог (вполне ожидаемо), теперь > я хочу только сделать лучше и избавиться от нездорового оверхэда исправив > решение, которое изначально проще и лучше. И всё как бы работает, > да только "sed теряет кавычки и не хочет работать". > Я даже примеры кода привёл, хватит тратить моё время в таком случае. Какие примеры коды? ))) Ты сам не понимаешь чего хочешь?! Жуть, и вот такие горе админы пробиваются в верхи и после пытаются управлять отделами! Жуть, просто жуть!
- Если у вас проблемы с восприятием, это же не значит, что они есть у всех Я прив, Аноним (1), 13:41 , 02-Янв-21 (27)
Если у вас проблемы с восприятием, это же не значит, что они есть у всех. Я привёл пример кода, достаточно иллюстрирующий суть проблемы.Начнём с того, что решить задачу другим путём, что мне предлагает каждый первый, в принципе невозможно. Да, можно написать скрипт который будет искать 2 кавычки на каждой строке, запоминать их позиции, и посимвольно проверять, чтобы на конце было подходящее расширение файла. После чего строить новую строку с новой ссылкой на файл. И то, это же всё равно сломается, если у нас многострочная строка. К частью, такое мне ещё не встречалось. Или же можно использовать примитивную регулярочку, которая сделает всё желаемое с минимум затрат. Собственно, именно это я и сделал, оставив выражение матчинга без изменений. Только теперь я получаю список файлов и заменяю каждое совпадение, вместо того чтобы sed сразу совершил все необходимые замены.
- Ещё можно использовать bison и компанию Да, можно сделать хорошо, даже лучше, б, Аноним (1), 13:51 , 02-Янв-21 (28)
Ещё можно использовать bison и компанию. Да, можно сделать хорошо, даже лучше, более узкоспециализированно. Но зачем, если ссылка "никогда" не будет разбита на несколько строк? Это в принципе достаточно невероятная ситуация, на практике повстречать такой код не придётся действительно никогда. Sed более чем достаточно.
- Не уверен что правильно понял задачу, но возможно это как-то поможет code ech, Аноним (29), 18:34 , 03-Янв-21 (29)
Не уверен что правильно понял задачу, но возможно это как-то поможет:$ echo -e 'value1="111" value2="222.ext" value3="333" otherdata\nvalue1="1" value2="2" value3="3" otherdata' | sed -e 's/"/\\"/g;s/\(.*\)\\"\(.*\)\(\.ext\)\\"\(.*\)/echo \1\\"\2\3\\"\4/e;s/\\"/\"/g' value1="111" value2="222.ext" value3="333" otherdata value1="1" value2="2" value3="3" otherdata
- Как вариант Ещё использую со страницами, там кавычки вообще заменены на quot , Аноним (1), 18:51 , 03-Янв-21 (30)
Как вариант. Ещё использую со страницами, там кавычки вообще заменены на " и можно так с ними и работать или же перегонять в другие кавычки. Вопрос "проглатывания" принципиально не решаемый? Неужели они не подумали о том, что ссылки как-то нужно защищать от подобного?
- Заменены на quot fix, Аноним (1), 18:52 , 03-Янв-21 (31)
Заменены на & quot; //fix
- Двойные кавычки съедает echo, а не sed Чтобы он этого не делал, нужно передать , Аноним (29), 20:27 , 03-Янв-21 (32)
Двойные кавычки съедает echo, а не sed. Чтобы он этого не делал, нужно передать ему строку, заключённую в одинарные кавычки. Но поскольку всё это уже находится в одинарных кавычках, то, чтобы шелл правильно всё распарсил, нужна такая последовательность (один из вариантов): '"'"'Т.е. первый апостроф заканчивает строку; затем идёт строка в двойных кавычках, которая и передаёт нужный нам апостроф; и последний апостроф снова начинает (продолжает) строку в одинарных кавычках. $ echo -e 'value1="111" value2="222.ext" value3="333" otherdata\nvalue1="1" value2="2" value3="3" otherdata' | sed -e 's/\(.*\)"\(.*\)\(\.ext\)"\(.*\)/echo '"'"'\1\"\2\3\"\4'"'"'/e' value1="111" value2="222.ext" value3="333" otherdata value1="1" value2="2" value3="3" otherdata
|