Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
シェル芸勉強会の方から来ました
千葉工業大学 上田 隆一
みなさんこんにちは
みなさんこんにちは
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
2
本日は
「シェル芸って何?」
という説明のスライドを
作って来ましたが
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
3
エモいので破棄しました
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
4
問題を出します
ノートPCを出しましょう
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
5
Q. 何の役に立つの?
A. できるようになれば分かる
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
6
問題1
• /etc/passwdからユーザ名を抽出した
リストを作ってください
• 第1回シェル芸勉強会第1問
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
7
解答例(解答の作成環境: Ubuntu 16.04)
• $ awk -F: '{print $1}' /etc/passwd
• $ sed 's/:.*$//' /etc/passwd
• $ cut -d: -f 1 /etc/passw...
問題2
• 右のような出力を
作ってください
• 第31回シェル芸勉強会第3問
Oct. 18, 2017
シェル芸勉強会 meets バイオインフォマ
ティクス vol.1
9
********************
*@*********...
解答例
• $ seq 20 | factor | awk
'{a="********************"}NF!=2{pr
int a}NF==2{print gensub(/./,"@",$2,a)}'
Oct. 18, 2017
シ...
問題3
• この中の重複する記号の並びで
最長のものはどれでしょうか。
• 数字や空白は除去のこと
• ソフトウェアデザイン2016年6月号第3問
• データ:
https://www.ncbi.nlm.nih.gov/nuccore/J020...
解答例
• データをfileに保存して空白を除去
• $ cat file | tr -dc a-z
• 試しに5文字で重複するものを出力
• $ cat file | tr -dc a-z | awk
'{for(i=1;i<=length(...
まとめ
•シェル芸
• できるようになれば分かる・・・と言うと
不親切ですが、正しくもあります。
• できるようになるには・・・
• 手を動かす
• 遊ぶ
• ネット上でお手本を探す
• 勉強会
Oct. 18, 2017
シェル芸勉強会 me...
Upcoming SlideShare
Loading in …5
×

2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド

1,773 views

Published on

DeNAさんにて。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド

  1. 1. シェル芸勉強会の方から来ました 千葉工業大学 上田 隆一
  2. 2. みなさんこんにちは みなさんこんにちは Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 2
  3. 3. 本日は 「シェル芸って何?」 という説明のスライドを 作って来ましたが Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 3
  4. 4. エモいので破棄しました Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 4
  5. 5. 問題を出します ノートPCを出しましょう Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 5
  6. 6. Q. 何の役に立つの? A. できるようになれば分かる Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 6
  7. 7. 問題1 • /etc/passwdからユーザ名を抽出した リストを作ってください • 第1回シェル芸勉強会第1問 Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 7
  8. 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. 9. 問題2 • 右のような出力を 作ってください • 第31回シェル芸勉強会第3問 Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 9 ******************** *@****************** **@***************** ******************** ****@*************** ******************** ******@************* ******************** ******************** ******************** **********@********* ******************** ************@******* ******************** ******************** ******************** ****************@*** ******************** ******************@* ********************
  10. 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. 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. 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
  13. 13. まとめ •シェル芸 • できるようになれば分かる・・・と言うと 不親切ですが、正しくもあります。 • できるようになるには・・・ • 手を動かす • 遊ぶ • ネット上でお手本を探す • 勉強会 Oct. 18, 2017 シェル芸勉強会 meets バイオインフォマ ティクス vol.1 13

×