0
我的情况是,以取代以下字符串解决方案中的所有脚本替换字符串
/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 2011-12-21 07:07:23
我不喜欢'xargs'。但这只是我的偏好。只要你的替代作品是重要的。 :)另外,我注意到了'sed'语句中的'g'。这是'全球'。如果您认为在同一行上有多个表达式需要替换,那么您需要这样做。如果你只有一个/行,那么你不需要'g'。 – 2011-12-21 07:10:49
如果我想改变第二行。它将如何? – AruM 2011-12-21 07:10:56