Вы можете сохранить каждую строку в отдельный файл, например.
f1 -1-я геномная последовательность f2 -2-я геномная последовательность
Теперь вам нужно преобразовать линии (горизонтальные в вертикальные):
awk '{gsub(".","&\n");printf "%s",$0}' < f1 >f1a
awk '{gsub(".","&\n");printf "%s",$0}' < f2 >f2a
Это сохранит новый формат в 2 новых файла (f1a и f2a )Теперь сравните 2 файла сdiff
diff -y f1a f2a #will output both lines and show differences
diff -c f1a f2a #will only output the differences and tell you from which line to which line
Подробнее о различиях:http://man7.org/linux/man-pages/man1/diff.1.html
Вышеупомянутое можно также превратить в небольшой скрипт, в который можно передать две геномные последовательности в качестве переменных.
Если вам нужен цветной вывод, попробуйте использоватьcolordiff
(в Ubuntu:sudo apt-get install colordiff
)и просто замените diff
на colordiff
в приведенном ниже сценарии. Для вывода рядом используйте опцию -y
:
.
#!/bin/bash
# This script will compare the 2 genomic sequences
echo "1st genomic sequence, followed by [ENTER]:"
read gena
echo "2nd genomic sequence, followed by [ENTER]:"
read genb
echo $gena | awk '{gsub(".","&\n");printf "%s",$0}' > /tmp/fa
echo $genb | awk '{gsub(".","&\n");printf "%s",$0}' > /tmp/fb
echo "Insert the diff argument you wish to use (e.g. -y or -c). Please refer to man diff for information. Hit [ENTER]:"
read $arg
diff $arg /tmp/fa /tmp/fb
exit
Вот так:
#!/usr/bin/perl
use JSON;
use utf8;
use strict; use warnings;
my $data = '{
"0y7vfr1234": {
"username": "user1@example.com",
"password": "some-random-password123",
"uri": "ww1.example.com",
"index": 14
},
"v2rbz1568": {
"username": "user3@example.com",
"password": "some-random-password125",
"uri": "ww3.example.com",
"index": 29
},
"0zjk1156": {
"username": "user2@example.com",
"password": "some-random-password124",
"uri": "ww2.example.com",
"index": 38
}
}';
my $json = decode_json $data;
foreach my $key (keys %$json) {
print "$key\n";
}
print "$json->{v2rbz1568}->{username}\n";
v2rbz1568
0y7vfr1234
0zjk1156
user3@example.com