【发布时间】:2011-11-08 01:43:11
【问题描述】:
我正在尝试找出 sed 命令和 perl 脚本的语法:
sed 's/^EOR:$//' INPUTFILE |
perl -00 -ne '/
TAGA01:\s+(.*?)\n
.*
TAGCC08:\s+(.*?)\n
# and so on
/xs && print "$1 $2\n"'
为什么在 sed 命令中有一个抑扬符^?第三个斜线/ 会将EOR: 的所有实例替换为空行,对吗?
我了解一些 Perl 脚本。查看perlrun,-00 将以段落模式啜饮流,-n 启动while <> 循环。
为什么在撇号旁边有第一个斜线/?该命令搜索TAGXXXX:,但我不确定\s+(.*?) 做了什么。这是否将标签之后的任何内容放入变量中?标签间搜索中的.* 怎么样? /ns 是做什么的?打印行中的$1 和$2 指的是什么?
这在网上很难找到,如果有人能把我踢向正确的方向,我将不胜感激。
【问题讨论】:
-
我想如果不了解 Perl 真的很难弄清楚。如果你只是想知道这个脚本的作用,有些人可能会告诉你,但是你问的所有关于细节的问题......你必须通过一本好的 Perl 书自己学习。
-
“我正在尝试找出语法”你已经知道语法了!如果您想知道代码 的含义 是什么,那么您正在尝试找出 语义,而不是语法。