Как найти строку и заменить n + n + 10 символов из этой строки другими 10 символами в Unix - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу найти строку, а затем из этой строки я хочу заменить 10 символов еще на 10 символов.

Например,

/prd/edm/hadoop/ifrs/eglex/hdata/ifrs_sri_open/eglex_*_txnacbal/ods=2020_02_23/

Я хочу найти строку "ods=" и замените "2020_02_23" на "2020_02_30"

Поскольку эта дата "2020_02_23" не согласована, я хотел выполнить поиск с "ods=", который является stati c и один раз для строки.

Как и в этом файле, в файле есть еще строки.

Я пробовал:

cat dta_1.sh | sed 's/.*ods=//' | cut -c1-10

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Я выполнил это, используя приведенное ниже,

sed -i '/ods=/ s|ods="[^"]*"|ods='"${DATE_FORMAT2}"'|g' dta_2.sh

Спасибо всем за ответ

0 голосов
/ 27 февраля 2020

Я хочу найти строку «ods =» и заменить «2020_02_23» на «2020_02_30»

sed 's|\(.*ods=\).*|\12020_02_30/|g' inputfile

Регулярное выражение в скобках \( \) воспроизводится \1 и строка после ods= заменяется на 2020_02_30/.

Если после даты 1011 * может быть что-то еще, то go для этого:

sed 's|\(.*ods=\)...._.._..|\12020_02_30|g' inputfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...