在perl中读取和删除两个字符串之间的文本

时间:2010-08-25 02:34:36

标签: perl string parsing cut

我需要一种方法来读取和删除某个文件中找到的两个不同字符串之间的文本,然后删除这两个字符串。就像一个“削减命令”。我想将文本存储在变量中。

我看到有关在两个字符串之间读取文本的帖子,但我也无法弄清楚如何删除它。

我打算用bash执行存储的文本。效率是可取的。此脚本不会在大文件上使用,但可能会按顺序执行多次,因此脚本运行得越快越好。

存储的文本通常包含特殊字符。

由于

1 个答案:

答案 0 :(得分:0)

通过环境指定开始和结束字符串,以及在perl命令行上使用的文件:

export START_STRING='abc def'
export END_STRING='ghi jkl'
perl -0777 -i -wpe's/\Q$ENV{START_STRING}\E(.*)\Q$ENV{END_STRING}\E/s;print STDERR $1' file_to_use 2>savedtext