Sed 查找并替换子字符串,然后插入完整字符串

问题描述 投票:0回答:1

示例: 文件包含以下内容:

lebnassvm0a-dr      test1      /vol/test1
lebnassvm0a-dr      test2      /test2
lebnassvm0a-dr      test3      /test3
stgtestsvm1-dr      test21      /test21
stgtestsvm1-dr      test22      /test22
stgtestsvm1-dr      test23      /test23

我想找到“-dr”并替换为“-drt”,然后在现有字符串前面插入完整的字符串,如下所示:

lebnassvm0a-drt lebnassvm0a-dr      test1      /vol/test1
lebnassvm0a-drt lebnassvm0a-dr      test2      /test2
lebnassvm0a-drt lebnassvm0a-dr      test3      /test3
stgtestsvm1-drt stgtestsvm1-dr      test21      /test21
stgtestsvm1-drt stgtestsvm1-dr      test22      /test22
stgtestsvm1-drt stgtestsvm1-dr      test23      /test23
sed
1个回答
0
投票

我会做什么:

$ sed -E 's/^([^-]+-dr)/\1-drt \1/' file
lebnassvm0a-dr-drt lebnassvm0a-dr      test1      /vol/test1
lebnassvm0a-dr-drt lebnassvm0a-dr      test2      /test2
lebnassvm0a-dr-drt lebnassvm0a-dr      test3      /test3
stgtestsvm1-dr-drt stgtestsvm1-dr      test21      /test21
stgtestsvm1-dr-drt stgtestsvm1-dr      test22      /test22
stgtestsvm1-dr-drt stgtestsvm1-dr      test23      /test23
© www.soinside.com 2019 - 2024. All rights reserved.