Perl onelinerにパイプ変数を渡す

Perl onelinerにパイプ変数を渡す

次のようなものがある場合:

find . -d -maxdepth 1 | wc -l | perl ...

Perlにこの着信変数を取得して1を引くように指示する方法は?

1を計算しすぎて1を減算しようとしました。

ベストアンサー1

Perlはここで過剰です。

find . -maxdepth 1 -mindepth 1 | wc -l

(一部のファイル名に改行文字が含まれないようにするgrep -c /よりも使用する方が良いです。)wc -l

またはGNUを使用してくださいls

ls -A | wc -l

そしてzsh

f=(*(D))
echo $#f

1つを削除するには:

... | tail -n +2 | wc -l

または:

n=$(... | wc -l); echo "$(($n - 1))"

-nPerlの場合またはフラグを使用できます-p

... | perl -lpe '--$_'

上記の式が評価され、--$_変数の内容が各入力行に対して印刷されます。$_

おすすめ記事