Chcę znaleźć wzorce, które są wymienione w jednym pliku i znaleźć je w innym pliku. Drugi plik ma te wzorce oddzielone przecinkami.
na przykład pierwszy plik F1 ma geny
ENSG00000187546
ENSG00000113492
ENSG00000166971
a drugi plik F2 ma te geny wraz z kilkoma dodatkowymi kolumnami (pięcioma kolumnami), których potrzebuję
region gene chromosome start end
intronic ENSG00000135870 1 173921301 173921301
intergenic ENSG00000166971(dist=56181),ENSG00000103494(dist=37091) 16 53594504 53594504
ncRNA_intronic ENSG00000215231 5 5039185 5039185
intronic ENSG00000157890 15 66353740 66353740
Zatem gen ENSG00000166971, który jest obecny w drugim pliku, nie pojawia się w grep, ponieważ ma z nim inny gen, oddzielony przecinkiem.
Mój kod to:
grep -f "F1.txt" "F2.txt" >output.txt
Chcę te wartości, nawet jeśli jedna z nich jest obecna, i powiązane z nią dane. Czy jest jakiś sposób, aby to zrobić?
grep
domyślnie zakotwicza swoje wzorce? Czygrep -f <(echo a) <(echo 'a,b')
produkuje jakąkolwiek produkcję?Odpowiedzi:
Jakiej wersji
grep
używasz? Wypróbowałem Twój kod i uzyskałem następujące wyniki:Jeśli chcesz po prostu wyników pasujących można użyć
grep
„s-o
przełącznik zgłosić tylko te rzeczy, które mecze:wersja grep
Zbłąkane postacie w F1.txt?
Podczas dalszego debugowania zauważyłem kilka zbłąkanych spacji na końcu drugiej linii w pliku
F1.txt
. Możesz je zobaczyć za pomocąhexdump
.Pokazują one, jak się z kodów ASCII 20. Można je zobaczyć w nich tutaj:
32 20 20 0a
.źródło