Portál AbcLinuxu, 7. listopadu 2025 18:48
Řešení dotazu:
hodnota1: 1 hodnota2: 2 ... hodnota200: 200nebo mohou být hodnoty na jednom řádku oddělené čárkou. Dá se to nějak elegantněji vyřešit aniž bych zaváděl 200 proměnných? Díky za trpělivost.
#!/bin/bash
declare -a arr;
i=0;
while read label value; do
echo "$label|$value";
arr[i]=$value;
((i++));
done < <(sed -e "s/,/\n/g" old.txt)
i=0;
while read label value; do
echo "$label|$value";
echo "$value - ${arr[$i]}";
arr[i]=$((value - arr[i]));
echo "${arr[i]}";
((i++));
done < <(sed -e "s/,/\n/g" new.txt)
#!/usr/bin/perl -w
use warnings;
use strict;
my @db = ();
while (<>) {
push @db, [ split('[\t\n,]') ];
}
my ($dim, $i,$j);
$dim = @{$db[0]};
for $i (0 .. $#db-1 ) {
for ($j =0; $j < $dim; $j++) {
print $db[$i+1][$j] - $db[$i][$j] . ',';
}
print "\n";
}
vstupne data:
$ cat test.in 5,1,6,1,6,4,9 4,1,6,8,2,1,7 7,9,2,3,6,1,6 2,2,1,5,7,2,5 $a samotny vystup:
$ ./output.pl test.in -1,0,0,7,-4,-3,-2, 3,8,-4,-5,4,0,-1, -5,-7,-1,2,1,1,-1, $script odpocitava n+1 riadok od n teho. dirty-style preto, lebo vstup, velkost vektorov (pocet cisel v riadku) nie je kontrolovany .. ukazuje princip, ako by si to mohol spravit. (jj, v perle, nie v bashi).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.