Различия строк с расположением элементов в сценарии оболочки - PullRequest
0 голосов
/ 21 сентября 2018

Ввод:

file1.txt

abc 1 2 3 4

file2.txt

abc 1 2 5 6

Ожидаемый вывод:

differences is 
3 
5
<b>at location 3</b>

Я могучтобы отслеживать различия, используя:

comm -3 file1.txt file2.txt | uniq -c | awk '{print $4}' | uniq

Но не в состоянии отслеживать местоположение элемента .

Не могли бы вы, ребята, предложить сценарий оболочки для отслеживания местоположения элемента?

1 Ответ

0 голосов
/ 21 сентября 2018

С perl и Path :: Class из CPAN для удобства

perl -MPath::Class -MList::Util=first -e '
    @f1 = split " ", file(shift)->slurp;
    @f2 = split " ", file(shift)->slurp;
    $idx = first {$f1[$_] ne $f2[$_]} 0..$#f1;
    printf "difference is\n%s\n%s\nat index %d\n", $f1[$idx], $f2[$idx], $idx;
' file{1,2}.txt
difference is
3
5
at index 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...