「#」で始まらないファイルのすべての行の先頭に「chr」を印刷したいと思います。
入力する:
##toto
#titi
16
17
出力:
##toto
#titi
chr16
chr17
awk '$1 ~ /^#/ ...
awk( ) または grep( ) を試してみましたgrep "^[^#]" ...
が、成功しませんでした。どうすればいいですか?
答え1
^[^#]
そうでない文字で始まり、#
プレフィックスで行を再構築する意味が必要だと思います。"chr"
awk '/^[^#]/{ $0 = "chr"$0 }1'
答え2
使用sed
sed '/^#/! s/.*/chr&/'
答え3
注文する
awk '{if(!/^#/ && !/^$/){$0="chr"$0;print}else if (/^#/ && !/^$/){print $0}}' filename
出力
##toto
#titi
chr16
chr17
Python
#!/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