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并且无法在编辑器中完成。
答案 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