SED:单引号后替换字符串

时间:2014-06-05 18:46:10

标签: regex bash sed

我有一个名为file.txt的文件,其中包含以下内容:

CREATE LARGE TABLESPACE LONGSPCE1 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY DATABASE
     USING (FILE '/db2data1/TGT_INST/TGT_DB/LONGSPCE1.c1' 1588368,
            FILE '/db2data2/TGT_INST/TGT_DB/LONGSPCE1.c2' 1588368,
            FILE '/db2data3/TGT_INST/TGT_DB/LONGSPCE1.c3' 1588368,
            FILE '/db2data4/TGT_INST/TGT_DB/LONGSPCE1.c4' 1588368)

我正在尝试将c[0-9]'之后的数字更改为值100。

我试过以下但没有运气。

cat file.txt |sed 's/(c1'' )\([0-9]*\)/$1 100/g'

1 个答案:

答案 0 :(得分:3)

您可以使用:

sed "s/\(c[0-9]\+'\) [0-9]\+/\1 100/" file.txt

USING (FILE '/db2data1/TGT_INST/TGT_DB/LONGSPCE1.c1' 100,
       FILE '/db2data2/TGT_INST/TGT_DB/LONGSPCE1.c2' 100,
       FILE '/db2data3/TGT_INST/TGT_DB/LONGSPCE1.c3' 100,
       FILE '/db2data4/TGT_INST/TGT_DB/LONGSPCE1.c4' 100)