perl一行程序替代这个bash“链”?

perl一行程序替代这个bash“链”?,perl,Perl,我试图按照《最小Perl》一书中描述的方式理解Perl 我已将所有源txt文件上载到我自己的服务器上: 我通过在这样的链中使用几个bash命令获得了输出: cat run*.txt | grep '^Bank[[:space:]]Balance'|cut -d ':' -f2 | grep -E '\$[0-9]+' 我知道这远不是最简洁和有效的,但至少它是有效的 随着我们的uni主题现在转到Perl部分,我想知道是否有一种方法可以在一行中获得相同的结果 我正在尝试以下类似的代码,但仍停留在中

我试图按照《最小Perl》一书中描述的方式理解Perl

我已将所有源txt文件上载到我自己的服务器上:

我通过在这样的链中使用几个bash命令获得了输出:

cat run*.txt | grep '^Bank[[:space:]]Balance'|cut -d ':' -f2 | grep -E '\$[0-9]+'
我知道这远不是最简洁和有效的,但至少它是有效的

随着我们的uni主题现在转到Perl部分,我想知道是否有一种方法可以在一行中获得相同的结果

我正在尝试以下类似的代码,但仍停留在中间:

Chenxi Mao@chenxi-a6b123bb /cygdrive/c/eMarket/output
$ perl -wlne 'print; if $n=~/^Bank Balance/'
syntax error at -e line 1, near "if $n"
Execution of -e aborted due to compilation errors.

你不应该有一个;打印后。所以

perl -wlne 'print $1 if $n=~/^Bank Balance\s*:\s*(\d+)/'

你不应该有一个;打印后。所以

perl -wlne 'print $1 if $n=~/^Bank Balance\s*:\s*(\d+)/'
这里还有一个bash命令的简短版本,只使用awk

awk  -F": " '/Bank[ \t]*Balance/&& $2!~/\$-/{print $2}' run*.txt
这里还有一个bash命令的简短版本,只使用awk

awk  -F": " '/Bank[ \t]*Balance/&& $2!~/\$-/{print $2}' run*.txt

@ghostdog74:谢谢你的两种解决方案。@ghostdog74:谢谢你的两种解决方案。