我有这个在 unix 中工作的命令来 grep 前 10 个大文件。但是,我在我的 Perl 脚本中使用该命令时遇到问题。虽然错误告诉我哪里出错了,但我不知道要修复它,因为我不熟悉 awk。谁能告诉我如何调整命令,以便我在 Perl 脚本中使用反引号?
用于 grep 前 10 个文件的 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
请点亮一些灯。谢谢!