More Related Content
More from Ryuichi Ueda (20)
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
- 8. 解答例(解答の作成環境: Ubuntu 16.04)
• $ awk -F: '{print $1}' /etc/passwd
• $ sed 's/:.*$//' /etc/passwd
• $ cut -d: -f 1 /etc/passwd
• $ grep -o '^[^:]*' /etc/passwd
• $ awk -F: '$0=$1' /etc/passwd
• $ tr : ' ' < /etc/passwd | awk '$0=$1'
• $ while read x ; do echo ${x%%:*} ; done </etc/passwd
• $ IFS=:; while read {a..z} ; do echo $a ; done </etc/passwd
(※試し終わったら端末を閉じましょう)
• $ python -c 'for l in open("/etc/passwd"): print l.split(":")[0]'
• $ perl -F: -lane 'print $F[0]' /etc/passwd
• $ ruby -F: -ne 'puts $_.split[0]' /etc/passwd
• $ vim -es /etc/passwd +':%s/:.*$//' +%p +q!
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
8
- 9. 問題2
• 右のような出力を
作ってください
• 第31回シェル芸勉強会第3問
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
9
********************
*@******************
**@*****************
********************
****@***************
********************
******@*************
********************
********************
********************
**********@*********
********************
************@*******
********************
********************
********************
****************@***
********************
******************@*
********************
- 10. 解答例
• $ seq 20 | factor | awk
'{a="********************"}NF!=2{pr
int a}NF==2{print gensub(/./,"@",$2,a)}'
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
10
- 11. 問題3
• この中の重複する記号の並びで
最長のものはどれでしょうか。
• 数字や空白は除去のこと
• ソフトウェアデザイン2016年6月号第3問
• データ:
https://www.ncbi.nlm.nih.gov/nuccore/J02050.1
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
11
1 ctggggaaat ctacagggca ccccaaaaac cactgcagga gaggccgctt gagggatccc
61 cggggaaacc tcaagcgaat ctgggaaggg agcgtacctg ggtcgatcgt gcgcgttgga
121 ggagactcct tcgtagcttc gacgcccggc cgcccctcct cgaccgcttg ggagactacc
181 cggtggatac aactcacgcg gctcttacct gttgttagta aaaaaaggtg tccctttgta
241 gcccct
- 12. 解答例
• データをfileに保存して空白を除去
• $ cat file | tr -dc a-z
• 試しに5文字で重複するものを出力
• $ cat file | tr -dc a-z | awk
'{for(i=1;i<=length($0);i++){print
substr($0,i,5)}}' | sort | uniq –d
• 仕上げ
• $ cat file | tr -dc a-z |awk
'{for(j=1;j<=length($0);j++)for(i=1;i<=lengt
h($0);i++){print j,substr($0,i,j)}}' | sort -n |
uniq -d
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
12