I have a data as follows in some files, i want to change CHAR(2-20) to VARCHAR(2-20). I should not touch any line with CHAR(1)
Example:
Input:
cur_rev_stage_cd CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
prev_rev_stage_cd CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prcs_cd CHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_cur_rev_stage_cd CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prev_rev_stage_cd CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
svc_base_cd CHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
pkging_type_cd CHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
bus_tran_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
dvc_nm CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
cust_intln_cd CHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
cash_only_flg CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
shpmt_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
Result should be given below:
cur_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prcs_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_cur_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
svc_base_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
pkging_type_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
bus_tran_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
dvc_nm VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
cust_intln_cd VARCHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
cash_only_flg CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
shpmt_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
I thought I had tested that as well. Rats! Try this:
awk '{gsub (/CHAR\(([^1]|[12][0-9])\)/,"VAR&")}1' file
cur_rev_stage_cd VARCHAR(15) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prcs_cd VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_cur_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
svc_base_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
pkging_type_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
bus_tran_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
dvc_nm VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
cust_intln_cd VARCHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
cash_only_flg CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
shpmt_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
cur_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prcs_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_cur_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
revrec_prev_rev_stage_cd VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
svc_base_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
pkging_type_cd VARCHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
bus_tran_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
dvc_nm VARCHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC,
cust_intln_cd VARCHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
cash_only_flg CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
shpmt_type_cd CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,