2

ファイルの連続していない行をフィルタリングするには、以下のワンライナーが正常に機能します。

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

ただし、エイリアスとして作成しようとすると、期待どおりに機能しません

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

以下のようにエラーになる

   a: Undefined variable.

SunOS オペレーティング システム用の tcsh シェルの使用

4

2 に答える 2

2

bash では、次の構文が機能します。

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

tcsh でも動作するように見える方法を次に示します。

alias uniqlines 'perl -ane '"'"'print unless $a{$_}++'"'"' '
于 2013-08-30T06:29:42.903 に答える
0

代わりに関数を使用したい:

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

しかし、これはかなり派手な言い方です。

alias uniqlines=uniq
于 2013-08-30T06:26:33.160 に答える