Рейтинг:3

Замените текст в одинарных кавычках другой строкой, используя sed (только первое вхождение регулярного выражения)

флаг ph

У меня есть файл со следующим содержимым:

$ cat файл.txt
СОЗДАТЬ СБОРКУ public.collation123 (поставщик = libc, языковой стандарт = 'fr-FR');  
CREATE COLLATION public.collation_1 (provider = libc, locale = 'bas');  
CREATE COLLATION public.collation_test (provider = libc, locale = 'fr-FR');   

Я хочу заменить первое появление из локаль = 'fr-FR' с локаль = 'fr_FR.utf8'.

После замены файл должен иметь следующее содержимое:

$cat файл.txt
CREATE COLLATION public.collation123 (provider = libc, locale = 'fr_FR.utf8');  
CREATE COLLATION public.collation_1 (provider = libc, locale = 'bas');  
CREATE COLLATION public.collation_test (provider = libc, locale = 'fr-FR'); 
Рейтинг:4
флаг hr

С GNU sed вы можете использовать специальную двухадресную форму 0,/регулярное выражение/ чтобы ограничить команду подстановки диапазоном до первого экземпляра включительно:

$ cat файл.txt
СОЗДАТЬ СБОРКУ public.collation123 (поставщик = libc, языковой стандарт = 'fr-FR');
CREATE COLLATION public.collation_1 (provider = libc, locale = 'bas');
CREATE COLLATION public.collation_test (provider = libc, locale = 'fr-FR');

$ sed "0,/'fr-FR'/s//'fr_FR.utf8'/" файл.txt
CREATE COLLATION public.collation123 (provider = libc, locale = 'fr_FR.utf8');
CREATE COLLATION public.collation_1 (provider = libc, locale = 'bas');
CREATE COLLATION public.collation_test (provider = libc, locale = 'fr-FR');

Пустой шаблон на левой стороне с/выкройка/замена заставляет его повторно использовать предыдущий шаблон из адреса.

Конечно, если вы знаете, что хотите сделать замену только в первой строке, вы можете использовать более простой "1s/'fr-FR'/'fr_FR.utf8'/"

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

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