【发布时间】:2021-04-22 11:53:43
【问题描述】:
以下 sed 命令在终端中有效,但是当我想将输出存储到脚本中的变量中时,它会提示我“sed: -e expression #1, char 27: unterminated address regex “消息。不知道这是什么...
Input file example:
orange
abc
def
apple
asd
edf
sed 命令获取关键字直到空白行,这在终端中工作:
sed -n '/orange/,/^$/p' temp_stage.txt
使用确切的命令存储到变量中。不工作。
my $waha = `sed -n '/orange/,/^$/p' temp_stage.txt`;
【问题讨论】:
-
你必须转义
$标志:my $waha = `sed -n '/orange/,/^\$/p' temp_stage.txt`; -
你到底为什么要从
perl调用sed,它具有sed具有的所有正则表达式:以及更多内置功能?你想在$wahabtw 中包含空白行吗? -
@ted 更好一点!致 OP:当有更多标准(在这种情况下为内置)方式来做同样的事情时,你不应该调用外部命令。调用外部程序既浪费又低效。
-
@Blurman 当您在 perl 中标记了这个问题时,我只是建议通过逐行读取文件来完成此任务,如果遇到任何空行,只需 最后循环并将读取的内容存储到任何变量或文件中。就是这样:)
-
我正在考虑将所有行减少为 1... 我想我错了。好的,然后我将继续逐行读取文件。谢谢谢谢