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
510
シェルで繰り返し処理
第22回シェル芸勉強会の午前の部で、福岡サテライト独自にやった初心者向けの内容です。
papiron
April 30, 2016
Tweet
Share
More Decks by papiron
See All by papiron
第45回シェル芸勉強会へようこそ
papiron
0
570
第44回シェル芸勉強会へようこそ
papiron
0
350
ワンライナーに便利なコマンド
papiron
0
370
第38回シェル芸勉強会へようこそ
papiron
0
450
第37回シェル芸勉強会へようこそ
papiron
0
410
第29回シェル芸勉強会へようこそ
papiron
0
730
第28回シェル芸勉強会へようこそ
papiron
0
1.1k
テキストデータの連結
papiron
0
1.1k
第27回シェル芸勉強会へようこそ
papiron
0
700
Other Decks in Technology
See All in Technology
OSSの実装を参考にBedrockエージェントを作る
moritalous
2
440
AIは脅威でなくチャンス。 AIと共に進化するエンジニアの成長戦略 / geeksai-2025-spring
carta_engineering
0
340
セキュリティグループの”タイプ”を改めて考えてみる
masakiokuda
0
130
「backlog-exporter」とAIの連携による業務効率化
shuntatoda
0
240
x86-64 Assembly Essentials
latte72
4
1.2k
Codar: Arte ou Ciência?! A Jornada de um DEV na Creator Economy
vclementino
0
190
UDDのすすめ
maguroalternative
0
530
20250307_エンジニアじゃないけどAzureはじめてみた
ponponmikankan
2
290
AWSサービスアップデート2025年2月分
yuobayashi
2
110
Microsoft_20250311_できるつくれるAIAgent.pdf
iotcomjpadmin
0
190
エンジニアのキャリアパスと、 その中で自分が大切にしていること
noteinc
4
3.5k
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
8
7.2k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
51
11k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Side Projects
sachag
452
42k
Fireside Chat
paigeccino
37
3.2k
BBQ
matthewcrist
87
9.5k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Documentation Writing (for coders)
carmenintech
69
4.7k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Code Reviewing Like a Champion
maltzj
521
39k
Writing Fast Ruby
sferik
628
61k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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Φϓγϣϯͷར༻Λߟ͑Δ