如何将星号(*)整合到sed的变化模式中?

时间:2019-04-17 14:58:58

标签: bash sed gsub

我有一个test1.txt文件,其中有很多行包含不同的信息。其中,有些行具有此类信息:

Fam_grapsidae
Fam_bursidae
Fam_siluridae

我想将Fam_*更改为italic{*},以便加入test2.txt

italic{grapsidae}
italic{bursidae}
italic{siluridae}

所以我尝试了sed

 sed 's/Fam_*/italic{*\}/g' test1.txt > test2.txt

但是我得到了:

italic{*}grapsidae

那么,如何在sed命令中整合星号以使italic{grapsidae}表达呢?

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:6)

您想要的是:

sed 's/Fam_\(.*\)/italic{\1}/' test1.txt > test2.txt

答案 1 :(得分:1)

必须先使用extended regex-E选项,才能在首先捕获组后取回它。

sed -E 's/Fam_(\w*)/italic{\1}/' test1.txt > test2.txt