Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シェルで繰り返し処理
Search
papiron
April 30, 2016
Technology
0
530
シェルで繰り返し処理
第22回シェル芸勉強会の午前の部で、福岡サテライト独自にやった初心者向けの内容です。
papiron
April 30, 2016
Tweet
Share
More Decks by papiron
See All by papiron
第45回シェル芸勉強会へようこそ
papiron
0
590
第44回シェル芸勉強会へようこそ
papiron
0
370
ワンライナーに便利なコマンド
papiron
0
400
第38回シェル芸勉強会へようこそ
papiron
0
460
第37回シェル芸勉強会へようこそ
papiron
0
420
第29回シェル芸勉強会へようこそ
papiron
0
760
第28回シェル芸勉強会へようこそ
papiron
0
1.1k
テキストデータの連結
papiron
0
1.1k
第27回シェル芸勉強会へようこそ
papiron
0
730
Other Decks in Technology
See All in Technology
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
430
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
200
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
230
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
410
5min GuardDuty Extended Threat Detection EKS
takakuni
0
140
Uniadex__公開版_20250617-AIxIoTビジネス共創ラボ_ツナガルチカラ_.pdf
iotcomjpadmin
0
160
エンジニア向け技術スタック情報
kauche
1
250
GitHub Copilot の概要
tomokusaba
1
130
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
110
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.1k
Witchcraft for Memory
pocke
1
310
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
270
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
72
4.9k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Agile that works and the tools we love
rasmusluckow
329
21k
Writing Fast Ruby
sferik
628
61k
Typedesign – Prime Four
hannesfritz
42
2.7k
Done Done
chrislema
184
16k
Being A Developer After 40
akosma
90
590k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
γΣϧͰ܁Γฦ͠ॲཧ USP༑ͷձ @papiron
܁Γฦ͠ॲཧ • ίϯϐϡʔλͷಘҙٕ • σʔλॲཧͷجຊ • ϓϩάϥϛϯάݴޠʹඞͣࡌ
܁Γฦ͠ॲཧ • γΣϧεΫϦϓτͰʁ • ϫϯϥΠφʔͰʁ • ϑΟϧλͱʁ • ߴॲཧ͢Δʹʁ
͓ ӈͷΑ͏ͳ ࿈ଓ͢ΔจࣈྻΛ ग़ྗΛ͢Δํ๏Λ ߟ͑ͯΈΔ ༽͕1ඖ ༽͕2ඖ ɾɾ ɾɾ ༽͕99ඖ
༽͕100ඖ
੍ޚߏΛ͏(1) $ n=1;while [ $n -le 100 ]; do echo
'羊 が'$n'匹'; n=`expr $n + 1`; done 羊が1匹 羊が2匹 .. .. 羊が99匹 羊が100匹 γΣϧͰ੍ޚߏ͕͑Δ whileϧʔϓͰ܁Γฦ͠ॲཧ
੍ޚߏΛ͏(1) #!/bin/sh n=1 while [ $n -le 100 ] do
echo '羊が'$n'匹' n=`expr $n + 1` done ϫϯϥΠφͰݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
ྻσʔλ࡞ͷํ๏ $ seq 1 100 1 2 .. 100 bashͷϒϨʔεల։
Λ͏ $ echo {1..100} 1 2 3 .. 99 100 seqίϚϯυΛ͏
੍ޚߏΛ͏(2) $ for n in `seq 100`; do echo '羊が'$n'匹';
done $ for n in {1..100} ; do echo '羊が'$n'匹'; done 1͔Β100ͷྻΛ४උ ܁Γฦ͠ॲཧforϧʔϓΛ༻ `seq 100`γΣϧͷίϚϯυஔػೳ
੍ޚߏΛ͏(2) #!/bin/sh for n in `seq 100` do echo '羊が'$n'匹'
done ϫϯϥΠφͰݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
੍ޚߏΛ͏(3) $ seq 100 | while read n; do echo
'羊が'$n'匹'; done 1͔Β100ͷྻΛ४උ ܁Γฦ͠ॲཧͷwhileϧʔϓʹύΠϓଓ
੍ޚߏΛ͏(3) #!/bin/sh seq 100 |\ while read n do echo
'羊が'$n'匹' done ϫϯϥΠφͰݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
xargsΛ͏(1) $ seq 100 | xargs printf '羊が%d匹\n' 1͔Β100ͷྻΛ४උ xargsʹύΠϓଓͯ͠printfίϚϯυ
printf '羊が%d匹' 1 2 3 4 .. 99 100 ࣮࣭ԼهͷίϚϯυ͕࣮ߦ ܁Γฦ࣮͠ߦ͕ແ͍ͨΊߴॲཧ͕ظ
xargsΛ͏(2) $ seq 100 | xargs -I@ echo '羊が@匹' 1͔Β100ͷྻΛ४උ
xargsͷ-IΦϓγϣϯΛར༻ echo '羊が1匹' echo '羊が2匹' .. echo '羊が100匹' ࣮࣭ӈهͷίϚϯυ͕ ࣮ߦ͞Ε͍ͯΔ
γΣϧʹίϚϯυྻΛ $ seq -f 'echo 羊が%g匹' 100 | sh ԼهͷΑ͏ͳίϚϯυྻΛ࡞
γΣϧʹύΠϓͰ࣮ͯ͠ߦ echo 羊が1匹 echo 羊が2匹 .. echo 羊が99匹 echo 羊が100匹 ύΠϓ γΣϧ
ϑΟϧλίϚϯυͰ $ seq 100 | sed 's/^/羊が/' | sed 's/$/匹/'
1͔Β100ͷྻΛ४උ ύΠϓͰsedʹͯ͠ॲཧ sed͕ϑΟϧλͱͯ͠ಈ࡞ ίϚϯυͷ܁Γฦ࣮͠ߦ͕ແ͍ͨΊ ߴͳॲཧ͕ظग़དྷΔ
܁Γฦ͠ॲཧͷߟ͑ํ • ॲཧ͍ͨ͠σʔλϦετΛ४උ • 1ߦ1ϨίʔυͳςΩετσʔλ • σʔλϑΝΠϧ໊Ұཡ • ίϚϯυͷग़ྗ
܁Γฦ͠ॲཧͷߟ͑ํ • ॲཧ͢ΔίϚϯυͷσβΠϯ • ϑΟϧλͱͯ͠ಈ࡞͢Δ͔ʁ • GNU dateΦϓγϣϯͰϑΟϧλಈ࡞ • ෳͷҾ͕ࢦఆग़དྷΔ͔ʁ
• lsίϚϯυɺfileίϚϯυͳͲ
܁Γฦ͠ॲཧͷߟ͑ํ • ϑΟϧλͱͯ͠ಈ࡞͢Δ • ͜Ε͕ग़དྷΕཧత • ύΠϓͰߴॲཧͷՄೳੑ
܁Γฦ͠ॲཧͷߟ͑ํ • ෳͷҾ͕ࢦఆग़དྷΔ • xargsͷར༻Λݕ౼͢Δ • xargsҾ͕͗ͯ͢େৎ
܁Γฦ͠ॲཧͷߟ͑ํ • ϑΟϧλෳҾμϝ • ੍ޚߏΛߟ͑Δ • xargsͷ-n-IΦϓγϣϯͷར༻Λߟ͑Δ