У меня есть большой текстовый файл, который содержит контент в соответствии примере ниже:Удаление определенного символа в любом месте между двумя конкретными строками?
number="+123 123 123" text="This is some text"
number="+123456" text="This may contain numbers"
number="+123456 789" text="Numbers here should keep their spaces"
number="+9 8 7 6 5" text="example 123 123 123"
То, что я хотел бы, чтобы удалить какой-либо символ пробела между двумя идентифицирующих строк, в этом случае number=
и " text=
, не касаясь остальной линия. Так что желаемый результат будет:
number="+123123123" text="This is some text"
number="+123456" text="This may contain numbers"
number="+123456789" text="Numbers here should keep their spaces"
number="+98765" text="example 123 123 123"
Регулярное выражение, как (?<=[0-9])(\s)(?=[0-9])
будет мешать с текстовым полем, что является нежелательным.
Я протестировал несколько вариантов использования чего-то по линиям (?<=address)(\s)(?=date)
, но это не сработает. Я думаю, что проблема заключается в том, что вы не можете справиться с дополнительными возможными числами между пробелами и маркерами?
Добавление подстановочных матчей в lookbehinds/lookaheads, таких как (?<=address.*)(\s)(?=.*date)
, кажется недействительным, иначе я сделал это неправильно? Кроме того, создание пробела ленивым с (/s+?)
, похоже, не помогает мне, но это касается того, где мои знания регулярного выражения действительно рассыпаются :)
В идеале я хотел бы также ограничить между лишними равными и кавычками символы для безопасности , I.e number="
в начале маркера и text="
в качестве маркера конца.
Любые sed/awk или подобные решения также приветствуются, если это проще.
Может ли быть номер в другом месте на линии, которая должна сокращаться, за исключением одного непосредственно после 'number =" + '? Пример' number = "+ 123 123 123" text = "Это текст« number2 = »+ 435 234 132' – Jotne