Portál AbcLinuxu, 13. července 2025 21:00
Ř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.