1

私は2つの数字を持つファイルを持っています

4     4
4      4
9         8
7     7

各行には、異なる数のスペースが含まれる場合があります。私がやりたいperldoのは、2つの数値の差を計算するために使用することです:

私は今しようとしている

:perldo @a=split(/ +/, $_); $_ =  $a[0] - $a[1]

これでうまくいくと思いますが、ファイルはまったく変更されません。

perldo を使用してこれを行うにはどうすればよいですか?

4

5 に答える 5

3

必須の awk ソリューション

:%!awk '{print $1-$2}'
于 2013-05-21T19:11:42.423 に答える
3

私はperlについてあまり知りませんが、これはここで機能します:

:perldo @a=split(/ +/, $_); $_ =  $a[0] - $a[1]; print $_

vimでファイルを編集していたので、vimの方法でそれを行うことを検討できます:

:%s/\v(\d+)\s*(\d+)/\=submatch(2)-submatch(1)
于 2013-05-21T18:40:27.363 に答える
0

シェルのワンライナー:

perl -ne 'if ( /(\d+)(\s+)(\d+)/ ) { print $1 - $3,":$1-$3\n";}' afile.txt 
于 2013-05-21T19:45:32.373 に答える