сопоставление строки и добавление к ней новой

Да, конвейерная передача вывода sourceзапустит эту часть конвейера в подоболочке, что означает, что любые переменные среды, установленные источником другого файла, не повлияют на среду скрипта.

Пример:

environment.csh:

setenv string "hello world"
echo 'The environment is now set up'

script.csh:

#!/bin/csh

source environment.csh | tee output
printf 'string is "%s"\n' "$string"

Результат работы script.cshбудет

The environment is now set up
string: Undefined variable.

Удаление трубы к teeприведет к выходу

The environment is now set up
string is "hello world"
-1
28.01.2020, 21:53
1 ответ

Подход KISS:

sed -e 's|cds.|ID=|g' -e 's|p1;|p1.cds;|g' file

Это использует sed для замены cds.на ID=, а затем заменяет p1;на p1.cds;.

Выход:

ID=STRG.1.1.p1.cds;Parent=STRG.1.1.p1

Если это делает то, что вы хотите, и исходит из файла, который вы хотите изменить, вы можете отредактировать его на месте с помощью

sed -i -e 's|cds.|ID=|g' -e 's|p1;|p1.cds;|g' string
0
28.04.2021, 23:25

Теги

Похожие вопросы