加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

每个Perl黑客应该知道perl -ne?

发布时间:2020-12-15 21:18:40 所属栏目:大数据 来源:网络整理
导读:我一直使用Perl命令行一个-ne选项多年,主要是以sed的方式处理文本文件。例: cat in.txt | perl -ne "s/abc/def/; s/fgh/hij/; print;" out.txt 我不知道我在哪里学到了,只有今天才读到perlrun,发现有其他形式(例如perl -pe)。 我还应该知道perl -ne? 解
我一直使用Perl命令行一个-ne选项多年,主要是以sed的方式处理文本文件。例:
cat in.txt | perl -ne "s/abc/def/; s/fgh/hij/; print;" > out.txt

我不知道我在哪里学到了,只有今天才读到perlrun,发现有其他形式(例如perl -pe)。

我还应该知道perl -ne?

解决方法

perl -ne’CODE’等同于程序
while (<>) {
    CODE
}

perl -ane’CODE’和perl -F / PATTERN / -ane也是很好的习语。他们相当于

while (<>) {
    @F = split /s+/,$_;
    CODE
}

while (<>) {
    @F = split /PATTERN/,$_;
    CODE
}

示例:高级grep:

perl -ne 'print if/REGEX1/&&!/REGEX2/&&(/REGEX3/||/REGEX4/&&!/REGEX5/)' input

perl -F/,/ -ane 'print if $F[2]==4&&$F[3]ge"2009-07-01"&&$F[3]lt"2009-08-01"' file.csv

使用不匹配的大括号的一个特别聪明的例子是here。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读