<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Shell Script on Ingenboy.inc</title>
    <link>https://blog.ingenboy.com/tags/shell-script/</link>
    <description>Recent content in Shell Script on Ingenboy.inc</description>
    <image>
      <title>Ingenboy.inc</title>
      <url>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.152.2</generator>
    <language>en</language>
    <lastBuildDate>Thu, 22 Aug 2024 11:25:15 +0900</lastBuildDate>
    <atom:link href="https://blog.ingenboy.com/tags/shell-script/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Shell_master</title>
      <link>https://blog.ingenboy.com/post/shell_master/</link>
      <pubDate>Thu, 22 Aug 2024 11:25:15 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/shell_master/</guid>
      <description>&lt;h1 id=&#34;背景&#34;&gt;背景&lt;/h1&gt;
&lt;p&gt;インフラエンジニアは、プロセスのメモリ上で何が起こっているかは実はあまりわからないくていい。それよりも、どうやってプロセスをうまく連携させるか、そういう大局的な視点がどうしても必要になる。
結局プログラムは何かを実現するための道具でしかない。道具を作るのはいいけど、インフラエンジニア版
何がいいたいかというと、道具と道具を組み合わせて何かをするという技を学ぶためには、shellを使えるようにならないとダメだという話だ。
shell芸人になれ。
なんか、すごい人はshellでワンライナーで全部解決していく。マジですごい。&lt;/p&gt;
&lt;h1 id=&#34;参考文献&#34;&gt;参考文献&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;&#34;&gt;1日１問、半年以内に習得シェルワンライナー１６０本ノック&lt;/a&gt;
&lt;a href=&#34;https://github.com/shellgei/shellgei160&#34;&gt;問題データリポジトリ&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;jqコマンド&#34;&gt;jqコマンド&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/takeshinoda@github/items/2dec7a72930ec1f658af&#34;&gt;jqこマンdのについて&lt;/a&gt;
だいぶ使えるのではないか？&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ echo &amp;#39;{&amp;#34;items&amp;#34;:[{&amp;#34;item_id&amp;#34;:1,&amp;#34;name&amp;#34;:&amp;#34;すてきな雑貨&amp;#34;,&amp;#34;price&amp;#34;:2500},{&amp;#34;item_id&amp;#34;:2,&amp;#34;name&amp;#34;:&amp;#34;格好いい置物&amp;#34;,&amp;#34;price&amp;#34;:4500}]}&amp;#39; \
| jq .
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;echo &amp;#39;{&amp;#34;items&amp;#34;:[{&amp;#34;item_id&amp;#34;:1,&amp;#34;name&amp;#34;:&amp;#34;すてきな雑貨&amp;#34;,&amp;#34;price&amp;#34;:2500},{&amp;#34;item_id&amp;#34;:2,&amp;#34;name&amp;#34;:&amp;#34;格好いい置物&amp;#34;,&amp;#34;price&amp;#34;:4500}]}&amp;#39; \
| jq .items
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;こちらの結果はこうなります。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[
  {
    &amp;#34;item_id&amp;#34;: 1,
    &amp;#34;name&amp;#34;: &amp;#34;すてきな雑貨&amp;#34;,
    &amp;#34;price&amp;#34;: 2500
  },
  {
    &amp;#34;item_id&amp;#34;: 2,
    &amp;#34;name&amp;#34;: &amp;#34;格好いい置物&amp;#34;,
    &amp;#34;price&amp;#34;: 4500
  }
]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次の例&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;echo &amp;#39;{&amp;#34;items&amp;#34;:[{&amp;#34;item_id&amp;#34;:1,&amp;#34;name&amp;#34;:&amp;#34;すてきな雑貨&amp;#34;,&amp;#34;price&amp;#34;:2500},{&amp;#34;item_id&amp;#34;:2,&amp;#34;name&amp;#34;:&amp;#34;格好いい置物&amp;#34;,&amp;#34;price&amp;#34;:4500}]}&amp;#39; \
| jq &amp;#39;.items[].name&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;こんな感じで出力されます&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#34;すてきな雑貨&amp;#34;
&amp;#34;格好いい置物&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;という感じで、ほうほう、jqなかなか便利ではないか？？ということですね。頭に入れておきましょう。&lt;/p&gt;
&lt;h1 id=&#34;sedコマンド&#34;&gt;sedコマンド&lt;/h1&gt;
&lt;h1 id=&#34;selectコマンド&#34;&gt;selectコマンド&lt;/h1&gt;
&lt;h1 id=&#34;trコマンド&#34;&gt;trコマンド&lt;/h1&gt;
&lt;p&gt;文字を置換したり、削除したりできるコマンド
&lt;a href=&#34;https://qiita.com/nagisa_O/items/1180abb9acc06aa115f0&#34;&gt;こちらをみてみよう&lt;/a&gt;
使用例&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;echo lion | tr lion bear
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;bear
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重複しているとダメらしい、、クソか。
しかしこういう使い方はするって話だ。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;hostname | tr -d &amp;#34;\n&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;date関数のすごい使い方&#34;&gt;date関数のすごい使い方&lt;/h1&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ date &amp;#34;+%F&amp;#34;                      #年月日を出力
2022-02-28

$ date &amp;#34;+%T&amp;#34;                      #時分秒を出力
22:37:49

$ date &amp;#39;+%Y/%m/%d %H:%M:%S&amp;#39;       #年月日と時分秒を出力
2022/02/28 22:40:13
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;今回はこうやって使われていた。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
