Рейтинг:0

sed и кавычки

флаг cn

Я получаю файлы данных, которые содержат оба из них (с запятыми и кавычками)
, "нкал",
,"НКАЛ",
Я хочу заменить все вхождения , "нкал", с ,"НКАЛ",

НО, я хочу оставить в покое
,"Med Ofc Adm-Clncal Suppt Svcs",
(Нижестоящий процесс чувствителен к регистру.)

Я попробовал оба из них:

sed -i 's/%ncal%/%NCAL%/g' /data/userinfo.csv

sed -i 's/\âncal\â/\âNCAL\â/g' /data/userinfo.csv

Что мне не хватает? Ваша помощь приветствуется.

Matthias Lenmher avatar
флаг nl
Вы пытались указать начальную (^) и конечную ($) точку вычисления регулярного выражения?
bac0n avatar
флаг cn
нечетные кавычки `â` (ПРАВАЯ ДВОЙНАЯ КАВАЧКА)
флаг hr
... он должен быть таким же простым, как `'s/"ncal"/"NCAL"/g'` (обычные двойные кавычки `"` не являются особыми в sed, а внешние одинарные кавычки `'` защищают их от оболочки )
Рейтинг:1
флаг ca

Возможно:
sed -re 's/([^a-zA-Z]ncal[^a-zA-Z])/\U\1/g' /data/userinfo.csv

нет доступных тестовых данных

Функция:
Находить нкал где символ до и после НЕ в а-я ни А-Я , (обратите внимание на завершающий пробел, поэтому также исключая пробелы) сохранить эти символы как совпадение номер 1 (то, что находится внутри первых и единственных круглых скобок в части поиска с команда, и поэтому обозначается как \1 в сменной части) и замените их \U => версия того же самого в верхнем регистре.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.