Предполагая, что вкладка -разделена файлом, вы можете использовать GNU awk:
gawk -F'\t' 'NR == FNR {count[$6][$4]++; next} length(count[$6]) > 1' file file
chr10 102979 103832 HSF1 305
chr10 102979 103832 HIF1AN 1 305
chr10 102979 103832 HSF1 305
chr10 103124438 103124851 HSF1 471
chr10 103124438 103124851 EGLN1 2 471
Это проходит через файл дважды :первый раз, чтобы подсчитать, сколько значений $4 встречается для каждых $6; второй раз для вывода записи, если для этих $6 имеется более 1 значения $4.
Вероятно, это можно было бы сделать за один проход за счет сложности, использования памяти и, возможно, потери исходного порядка.
Та же логика в perl
perl -Mautodie -e '
open $f, "<", shift;
while (<$f>) {
@F = split /\t/;
$c{ $F[5] }{ $F[3] }++;
}
# re-process the file
seek $f, 0, 0;
while (<$f>) {
@F = split /\t/;
print if scalar keys %{ $c{$F[5]} } > 1;
}
' file
Любовьtimeout
Альтернативное решение, близкое к исходному посту:
мой.ш:
#!/bin/bash
vlc /path/to/my.mp3 & # ADDED & <- will play the file in loop till I terminate it.
pid=$!
sleep 10
kill $pid
чмод:
chmod +x my.sh
Запустить:
./my.sh &