Bash grep sth.затем, чтобы найти позицию - PullRequest
1 голос
/ 29 ноября 2011

Я давно задавался вопросом об этом вопросе; скажем, я сначала пытаюсь извлечь некоторые строки из файла:

cat 101127_2.bam |grep 'TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA'

Тогда выскочит вся строка, содержащая эту строку. Однако можем ли мы использовать какой-нибудь простой bash-код, чтобы определить, в какой строке находится эта строка? (100-й? 1000-й? ...)

Ответы [ 3 ]

4 голосов
/ 29 ноября 2011
grep -n 'TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA' 101127_2.bam

Я нашел его, используя man grep и написав /line number

// РЕДАКТИРОВАТЬ: Спасибо @Keith Thompson, я редактирую сообщение с cat file | grep -n pattern до grep -n pattern file, я спешил извините

2 голосов
/ 29 ноября 2011

попробуйте это:

cat 101127_2.bam |grep -n 'TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA'
0 голосов
/ 29 ноября 2011

Это может работать и для вас:

sed '/TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA/=;d' 101127_2.bam

или

sed -n '/TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA/=' 101127_2.bam

Приведенные выше решения выводят только совпадающие номера строк, чтобы увидеть также совпадающие строки:

sed '/TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA/!d;=' 101127_2.bam

или

sed -n '/TGATTACTTGCTTTATTTTAGTGTTTAATTTGTTCTTTTCTAATAA/{=;p}' 101127_2.bam
...