トップ10の大きなファイルをgrepするためにunixで動作するこのコマンドがあります。ただし、Perl スクリプトでコマンドを使用すると問題が発生します。エラーはどこが間違っているかを示していますが、awkに慣れていないため、修正する方法がわかりません。Perl スクリプトでバックティックを使用できるように、コマンドを微調整する方法を教えてもらえますか?
トップ 10 ファイルを grep する Unix コマンド:-
find . -name .snapshot -prune -o -printf '%s %u %p\n' \
| sort -nr \
| head \
| awk '{printf"%5.2f MB %s %s\n", $1/1024/1024, $2, $3}'
これは私がPerlで使用する方法ですが、エラーが表示されます:-
my $cmd = `find . -name .snapshot -prune -o -printf '\%s \%u \%p\n' | sort -nr | head | awk '{printf \%9.2f MB \%s \%s\n , \$1\/1024\/1024, \$2, \$3}'` ;
実行時に表示されるエラー:-
awk: cmd. line:1: {printf %9.2f MB %s %s
awk: cmd. line:1: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
awk: cmd. line:1: {printf %9.2f MB %s %s
awk: cmd. line:1: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
awk: cmd. line:1: {printf %9.2f MB %s %s
awk: cmd. line:1: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
awk: cmd. line:2: , $1/1024/1024, $2, $3}
awk: cmd. line:2: ^ parse error
Plsはいくつかのライトを当てます。ありがとう!