CAMPHOR- 「CLIについて語る会」における発表資料
γΣϧܳೖishiy2017.05.28
View Slide
$ whoami• Twitter: @ishiy1993• Arch Linux• Zsh• urxvt• Neovim͜ͷεϥΠυதͷྫ্هͷڥͰςετ͍ͯ͠·͢ɻMac ͷਓɺ”GNU coreutils”ΛΠϯετʔϧͯ͠༻͍ͯͩ͘͠͞ɻ
͓͠ͳ͕͖• γΣϧܳͱ• γΣϧܳͷجຊɺίπ• Α͘͏ίϚϯυ 8 બ• ͓͢͢Ίॻ੶ɺγΣϧܳษڧձ
γΣϧܳͱϚεΘͣɺιʔείʔυͣ͞ɺGUI πʔϧΛ্ཱͪ͛Δؒͳ͘ɺ͋ΒΏΔௐࠪɾܭࢉɾςΩετॲཧΛ CLI ͷίϚϯυೖྗҰܸऴΘΒ͢͜ͱɻ͋Δ͍ͦͷͱ͖ͷίϚϯυೖྗͷ͜ͱɻfrom https://blog.ueda.tech/?page id=1434ҰݴͰ͍͏ͱɺγΣϧϫϯϥΠφʔ
γΣϧܳͷجຊύΠϓ | ͰίϚϯυΛͭͳ͍ͰΓ͍ͨ͜ͱΛ࣮ݱ͢Δྫ: P ͔Β͡·Δϓϩάϥϛϯάݴޠ?$ cat programming -languages.txt | grep ’^P’PHPPerlPythonPureScriptύΠϓʹΑͬͯ୯ػೳͳίϚϯυΛࣗ༝ʹΈ߹ͤΒΕΔ!!!
γΣϧܳͷίπଟ͘ͷίϚϯυߦʹରͯ͠࡞༻͢Δ⇒ ͏·͘σʔλΛมܗͯ͠ѻ͏ྫ:LICENSE ͱ͍͏ϑΝΠϧதʹ࠷සޠԿ͔? ·ͨԿݸ͋Δ͔?$ cat LICENSE | tr ’A-Z’ ’a-z’ |xargs -n 1 | tr -d ’,.()’ |sort | uniq -c | sort -k1 ,1nr | head -1
Α͘͏ίϚϯυ8બࠓճհ͢Δͷ• cat• sort• uniq• grep• xargs• tr• sed• awk
catϑΝΠϧͷதΛ࿈݁ͯ͠ग़ྗ͢Δ$ cat sample1.txt sample2.txt-Ͱඪ४ೖྗΛࢦఆͰ͖Δ$ date +%F | cat sample1.txt sample2.txt -
sort, uniqsort: ೖྗΛιʔτͯ͠ग़ྗ͢Δ$ cat programming -languages.txt | sortΑ͘͏Φϓγϣϯ: k, n, r, suniq: ॏෳΛݟ͚ͭΔɺআ͢Δ$ cat programming -languages.txt |sed ’s/\(.\).*/\1/ ’ | sort | uniq -cΑ͘͏Φϓγϣϯ: u, d, c
grep݅ʹϚον͢ΔߦΛग़ྗ͢Δ$ grep "^.*$" *Α͘͏Φϓγϣϯ: E, i, v, o, A, B, C$ cat LICENSE | grep -o the$ seq 1 100 | grep -C 2 1
xargsඪ४ೖྗΛίϚϯυͷҾʹ͢$ ls *.txt | awk ’{print $1 ,$1".bak"}’ |xargs -n 2 cpγΣϧܳਓత͍ํ$ seq 1 9 | xargs -n 3
trจࣈΛஔ͢Δɺআ͢Δ$ cat presen.csv | tr ’,’ ’ ’Α͘͏Φϓγϣϯ: d, c$ cat /dev/urandom | tr -dc ’1-9’ |fold -w 4 | head -1
sedετϦʔϜΤσΟλʔ͍Ζ͍ΖͰ͖Δ͕ɺจࣈྻͷஔʹ͏͜ͱ͕ଟ͍$ echo " x x ʹ ͭ ͍ ͯ ޠ Δ ձ " | sed ’s/xx/CLI/’$ seq 1 100 | sed ’0~3s/.*/ Fizz/’ |sed ’0~5s/.*/ Buzz/’ |sed ’0~15s/.*/ Fizz Buzz/’
awkϓϩάϥϛϯάݴޠجຊతͳ͍ํ$ cat presen.csv | tr ’,’ ’ ’ |awk ’{print $1" ʮ" $2" ʯ ʹ ͭ ͍ ͯ ͠ · ͢"} ’$ seq 1 10 | awk ’NR >=5’$ seq 1 10 | awk ’NR %3==0{ print $1*$1}’$ seq 1 100 | factor | awk ’NF ==2{ print $2}’
հͰ͖ͳ͔ͬͨίϚϯυͨͪࠓճհͨ͠Ҏ֎ʹ͞·͟·ͳίϚϯυ͕͋ΔɻͦͷҰ෦Λྻڍ͓ͯ͘͠ɻ• find• diff• paste• curl• wget• jq• nkf• ͳͲͳͲ
͓͢͢Ίॻ੶• ্ా ོҰ ʮγΣϧϓϩάϥϛϯά࣮༻ςΫχοΫʯ• Piro(݁༸ࢤ) ʮ·Μ͕ͰΘ͔Δ Linux γεܥঁࢠʯ• Piro(݁༸ࢤ) ʮ·Μ͕ͰΘ͔Δ Linux γεܥঁࢠ 2ʯͬͱγΣϧͰ͍Ζ͍ΖΓ͍ͨͱ͍͏ํʹ 1 CLI Λ͍͡Ί͔ͨΓͱ͍͏ํʹ 2,3 Λ͓͢͢Ί͠·͢ɻ͋ͱ man ΛಡΉͷ͓͢͢Ί͠·͢ɻ
γΣϧܳษڧձ• 2ϲ݄ʹ 1 ճ։࠵ (౦ژɺେࡕɺԬ)• γΣϧܳͰΛղ͘• YouTube ͰϥΠϒ৴͍ͯ͠Δ• Twitter(#γΣϧܳ) ͰΓ্͕͍ͬͯΔ• աڈҰཡ: https://blog.ueda.tech/?page id=684
·ͱΊγΣϧܳΛۦͯ͠࡞ۀޮΛ্͠Α͏!!!
Thank you.