Я хотел бы напечатать "chr" в начале каждой строки, которая не начинается с "#" в моем файле.
input :
##toto
#titi
16
17
вывод:
##toto
#titi
chr16
chr17
Я пробовал с awk (awk '$1 ~ /^#/...
) или grep (grep "^[^#]"...
), но безуспешно. Как мне это сделать?
Я думаю, вам нужно ^[^#]
значение, начиная с символа, который не является #
, и реконструировать эти строки, добавляя префикс"chr"
awk '/^[^#]/{ $0 = "chr"$0 }1'
команда
awk '{if(!/^#/ && !/^$/){$0="chr"$0;print}else if (/^#/ && !/^$/){print $0}}' filename
выход
##toto
#titi
chr16
chr17
питон
#!/usr/bin/python
import re
k=re.compile(r'^#')
e=re.compile(r'^$')
p=open('filename','r')
for i in p:
if not re.search(k,i) and not re.search(e,i):
print "chr{0}".format(i.strip())
elif not re.search(e,i):
print i.strip()
выход
##toto
#titi
chr16
chr17