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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
papiron
October 26, 2019
Programming
0
440
ワンライナーに便利なコマンド
シェル芸勉強会福岡サテライトで話そうと思ったが、時間が無くてお蔵入りしたスライド。ワンライナーが書きやすいコマンド、というかプログラミング言語について紹介。
papiron
October 26, 2019
Tweet
Share
More Decks by papiron
See All by papiron
第45回シェル芸勉強会へようこそ
papiron
0
630
第44回シェル芸勉強会へようこそ
papiron
0
410
第38回シェル芸勉強会へようこそ
papiron
0
500
第37回シェル芸勉強会へようこそ
papiron
0
450
第29回シェル芸勉強会へようこそ
papiron
0
810
第28回シェル芸勉強会へようこそ
papiron
0
1.2k
テキストデータの連結
papiron
0
1.2k
第27回シェル芸勉強会へようこそ
papiron
0
780
仮想端末tmux始めました
papiron
0
830
Other Decks in Programming
See All in Programming
組織で育むオブザーバビリティ
ryota_hnk
0
160
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
390
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.9k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
570
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
710
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.7k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1k
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
0
160
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
130
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
440
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.9k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
370
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
290
Claude Code のすすめ
schroneko
67
210k
Visualization
eitanlees
150
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
61
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
400
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Building an army of robots
kneath
306
46k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
420
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Transcript
ϫϯϥΠφʔʹศརͳ ίϚϯυ ˏpapiron
ࣗݾհ • Twitter: @papiron • ԬαςϥΠτ։࠵୲ • ΠϯϑϥΤϯδχΞͬΆ͍ • WebͳϓνΤϯδχΞͬΆ͍
• ϝϯυ͍͘͞σʔλॲཧ୲ • γΣϧͱRubyͱPHP
γΣϧܳͱawk • ߦྻࢦͳσʔλͷѻ͍ • ֤छूܭॲཧ • ܭࢉจࣈྻॲཧ AWKΛ͏͜ͱ͕ଟ͍ॲཧ
awkͷศར͞ • ೖྗ܁Γฦ͠ʹؔ͢Δهड़ෆཁ • IO͔Βreadͱ͔͕ෆཁ • ΞΫγϣϯຖߦ࣮ߦ • ύλʔϯʹΑΔ݅ࢦఆ •
ifߏจΛ͏ػձ͕ݮΔ • ศརͳ֤छม • ϑΟʔϧυมʢ$0ɺ$1ɺɺɺʣ • ΈࠐΈมʢNRɺFNRɺNFͳͲʣ ϫϯϥΠφʔΛॻ͖͍͢ཁૉ͕ଟ͍
awkͬΆ͘ॻ͖͍ͨ ଞͷݴޠͰ awkϥΠΫͳϫϯϥΠφʔΛॻ͖͍ͨ PerlͱRubyͰग़དྷΔ
RubyͷawkϞʔυ • ΦϓγϣϯͰawkϥΠΫͳϞʔυʹ • -n ίʔυΛຖߦ࣮ߦ • -a ࣗಈϑΟʔϧυׂʢ$Fʣ •
-l ߦ͔ΒվߦจࣈΛऔΓআ͘ • -F ϑΟʔϧυ۠Γจࣈࢦఆ • ΈࠐΈมʢ$.ͳͲʣ • -rΦϓγϣϯͰϥΠϒϥϦಡΈࠐΈʢcsvͳͲʣ • BEGIN{}ͱEND{}͕͑Δ
$ echo 0 1 2 | ruby -alne 'puts $F[1]'
1 $ cat data.txt user01,175,80 user02,170,65 user03,182,85 $ cat data.txt | ruby -F, -alne 'puts $F[1]' | xargs 175 170 182 $ cat data.txt | ruby -F, -alne 'BEGIN{a=0;b=0}; a+=$F[1].to_i;b+=$F[2].to_i; END{print "ฏۉ:#{a.to_f/$.} ମॏฏۉ:#{b.to_f/$.}"}' ฏۉ:175.66666666666666 ମॏฏۉ:76.66666666666667 RubyͷawkϞʔυ࣮ྫ
ϫϯϥΠφʔಛԽίϚϯυ • rbίϚϯυ • https://github.com/thisredone/rb • RubyͷϫϯϥΠφʔಛԽ൛ϥούʔ • opyίϚϯυ •
https://github.com/ryuichiueda/opy • PythonͰϫϯϥΠφʔπϥΠ • Πϯσϯτࣗମ͕จ๏ͩͬͨΓ • ্ాձ࡞ͷϥούʔ
rbίϚϯυ • ඪ४ೖྗ͔Βͷσʔλ͕Ϩγʔό • ϝιου͕ॻ͚Δ • 2ͭͷϞʔυ • linesϞʔυ •
ೖྗશମΛEnumeratorͱͯ͠ѻ͏ • lineϞʔυʢ-lΦϓγϣϯʣ • 1ߦͣͭStringͱͯ͠ॲཧ͢Δ
rbίϚϯυ࣮ྫ # ϨγʔόEnumerator $ seq 3 | rb 'self.inspect' #<Enumerator:
#<IO:<STDIN>>:each_line> $ seq 100 | rb grep '/0$/' | xargs 10 20 30 40 50 60 70 80 90 100 # rubyͱൺֱ $ seq 100 | ruby -e 'puts STDIN.each_line.grep(/ 0$/)' | xargs 10 20 30 40 50 60 70 80 90 100 $ seq 10 | rb 'map{|i|i.to_i}.sum' 55 linesϞʔυ
rbίϚϯυ࣮ྫ # Ϩγʔόೖྗ֤ߦͷจࣈྻ $ seq 3 | rb -l 'self.inspect'
| tr '\n' ' ' "1" "2" "3" $ echo 0,1,2 | rb -l 'split(",")[1]' 1 # Rubyͱൺֱ $ echo 0,1,2 | ruby -ne 'puts $_.split(",")[1]' 1 $ seq 100 | xargs -n 10 | rb -l split.last | xargs 10 20 30 40 50 60 70 80 90 100 lineϞʔυ
rbͰग़དྷͳ͍͜ͱ • Φϓγϣϯ͑ͳ͍ • -FͰ۠Γจࣈࢦఆग़དྷͳ͍ • -rͰϥΠϒϥϦಡΈࠐΈग़དྷͳ͍ • ϑΟʔϧυͷࣗಈׂ •
BEGINͱEND
opyͷࢿྉ PythonΛίϚϯυϥΠϯͰ͍͍ͨͷͰopyͱ͍͏ίϚϯυΛ࡞ͬͨ https://b.ueda.tech/?post=20190908_opy ࣗ࡞ίϚϯυʢopyʣΛbrewͱsnapʹରԠͨ͠ https://b.ueda.tech/?post=20190911_opy opyʹjoin, dropjoinΛ࣮ https://b.ueda.tech/?post=20190916 opyͰPythonͷSciPyͱNumPyΛϫϯϥΠφʔͰ͏࣮ݧ https://b.ueda.tech/?post=20190929_opy
্ా͞ΜϒϩάΛࢀর
͋͑ͯawkΛ͏ར • େମೖ͍ͬͯΔ • ՃΠϯετʔϧෆཁͳ߹͕ଟ͍ • ॲཧ͕ߴ • େنͳςΩετσʔλͷॲཧʹ