搜索并替换后引用变量

时间:2017-05-16 21:45:25

标签: linux awk grep

String text = "This is a very tiny test!!!"    
Pattern p = "this is a (.*) test.*"

Output o = "very tiny" (after search and replace)

我想用支架()内的内容替换模式,该内容用$ 1索引。在Linux上,什么命令可以做到这一点以及如何做?

我必须在命令行执行此操作,因为我的文件是几GB并且无法在编辑器中完成。

1 个答案:

答案 0 :(得分:1)

使用GNU sed

s='This is a very tiny test!!!'
sed -En 's/this is a (.*) test.*/\1/ip' <<< $s

输出:

very tiny

i - 正则表达式匹配的I修饰符是一个GNU扩展,它以不区分大小写的方式使sed匹配 regexp

替代 perl 方法:

perl -nle 'print $1 if /this is a (.*) test.*/i' <<< $s