簡體   English   中英

如何使用Perl One-liner作為別名

[英]How to use perl one-liner as an alias

要過濾文件的非連續行,下面的一線工作正常:

cat filename | perl -ane 'print unless $a{$_}++'

但是,當我嘗試將其用作別名並執行操作時,它無法按預期工作

alias uniqlines " cat \!* | perl -ane 'print unless \$a{\$_}++' "

錯誤如下

   a: Undefined variable.

將tcsh shell用於SunOS操作系統

在bash中,此語法有效:

alias uniqlines="perl -ane 'print unless \$a{\$_}++' "

即使在tcsh中,這也是一種似乎可行的方法:

alias uniqlines 'perl -ane '"'"'print unless $a{$_}++'"'"' '

您想使用一個函數代替:

uniqlines(){ cat "$@" | perl -ane 'print unless $a{$_}++'; }

但這幾乎只是一種幻想的表達方式:

alias uniqlines=uniq

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM