小编Rah*_*jee的帖子

需要替换文件内容

我陷入了困境。我有一个包含内容的文件 script.txt

$cat script.txt

SET TABLESPACE CONTAINERS FOR 3
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS
USING (
FILE '/db2data2/dbs/rahtest/rahtest1.lrg'  5120
);


SET TABLESPACE CONTAINERS FOR 4
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS
USING (
  FILE   '/db2data2/dbs/rahtest/rahtest2.lrg'  5120
);
Run Code Online (Sandbox Code Playgroud)

我的要求是行中的文件系统

FILE '/db2data2/dbs/rahtest/rahtest1.lrg' 5120
FILE   '/db2data1/dbs/rahtest/rahtest2.lrg'  5120
Run Code Online (Sandbox Code Playgroud)

我需要更换

/db2data2/dbs/rahtest/rahtest1.lrg
Run Code Online (Sandbox Code Playgroud)

/db2data2/dbs/rahtest/rahtest2.lrg
Run Code Online (Sandbox Code Playgroud)

与其他文件系统;说

/db2data3/dbs/rahtest/rahtest1.lrg
Run Code Online (Sandbox Code Playgroud)

/db2data3/dbs/rahtest/rahtest2.lrg
Run Code Online (Sandbox Code Playgroud)

分别。

其他部分应该是一样的。我的输出现在是这样的——

FILE '/db2data3/dbs/rahtest/rahtest1.lrg'  5120
FILE '/db2data3/dbs/rahtest/rahtest2.lrg'  5120
Run Code Online (Sandbox Code Playgroud)

它应该反映在我的文件中。我不知道线条在线条中的位置。我用sed试过。我试图将这些行放入变量中,比如 var1 和 var2

var1=`echo /db2data2/dbs/rahtest/rahtest1.lrg'
var2=`echo /db2data2/dbs/rahtest/rahtest2.lrg'
var3=`echo /db2data3/dbs/rahtest/rahtest1.lrg'
var4=`echo /db2data3/dbs/rahtest/rahtest2.lrg'
Run Code Online (Sandbox Code Playgroud)

当我试图做

sed 's/$var/$var3' script.txt
Run Code Online (Sandbox Code Playgroud)

它失败了,因为 / 在那里。我正在使用 AIX。我的最终文件应该是这样的——

SET …
Run Code Online (Sandbox Code Playgroud)

sed aix

3
推荐指数
1
解决办法
187
查看次数

标签 统计

aix ×1

sed ×1