sed搜索并用其子字符串值替换字符串

时间:2015-05-12 11:04:14

标签: unix sed

我有一个创建表脚本(外部表)。我想将表名替换为EXT_ [原始表的前27个字符]

示例I / P文件

CREATE TABLE "EXT_P12345678912345678912345678"
(
  "PARTITION_KEY" VARCHAR2(12),
  "ID" VARCHAR2(100),
  "STRESS_TESTING_SCENARIO_ID" VARCHAR2(100),
  "TRANCHE_COLLATERAL_TYPE" VARCHAR2(20),
  "TRANCHE_GUARANTEE_TYPE" VARCHAR2(20),
  "BS_TYPE" VARCHAR2(3),
  "CONTRACT_REFERENCE" VARCHAR2(50),

预期O / p

LoginContext loginContext = new LoginContext("CONTEXTNAME", callbackHandler);
loginContext.login();
return loginContext.getSubject();

该脚本需要在Linux和Solaris上运行。

1 个答案:

答案 0 :(得分:0)

这个awk单行程适用于你的例子:

awk -F'"' -v OFS='"' '/CREATE TABLE/{$2=substr($2,1,27);sub("^","EXT_",$2)}7' file