Мой сценарий должен заменить НИЖЕ снабжать струной, тетивой и т.п.решение для замены строки во всех сценариях
/dboracle/orabase/product/10.2.0
в
/dboracle/orabase/product/11.2.0.2_org
Ksh содержит следующие значения,
export ORACLE_HOME="/dboracle/orabase/product/10.2.0"
export ORACLE_HOME="/dboracle/orabase/product/10.2.0_RDBMS"
export JAVA_HOME=/dboracle/orabase/product/10.2.0/jdk/bin
я должен изменить первая линия только. Я не должен беспокоить вторую и третью строку.
Используя find
, я получу список сценариев и изменил его с помощью команды sed/awk
.
find/-type f -name "*.ksh" -exec grep -H "/dboracle/orabase/product/10.2.0" '{}' \; -print 2>/dev/null
Дай мне знать решение.
Как насчет этого с поиском и заменой find/-type f -print0 | xargs -0 sed -i /ORACLE_HOME/s/10\.2\.0"/11.2.0.2_org"/g ' – AruM
Я не слишком люблю «xargs». Но это только мои предпочтения. Пока ваша замена работает, что имеет значение. :) Кроме того, я заметил 'g' в' sed'. Это для «глобального». Если вы считаете, что в одной строке есть несколько выражений, которые нужно заменить, вам это нужно. Если у вас есть только одна строка, вам не нужно 'g'. –
Если я хочу изменить вторую строчку. как это будет? – AruM