awkコマンド(文字列抽出)の使い方

文字列抽出で利用するawkコマンドの使い方を解説します。awkコマンドは、表形式で出力されるコマンド結果から、目的の情報を抽出したいときなどに活用できます。

書式

awk [オプション] [コマンド] [ファイル...]

利用例

指定フィールドを表示

スペース で区切られた 各フィールド のうち、 特定フィールドのみ 表示します。

$ cat test.txt 
1111 aaaa AAAA
2222 bbbb BBBB
3333 cccc CCCC
$ awk '{print $1, $3}' test.txt 
1111 AAAA
2222 BBBB
3333 CCCC

区切り文字を変更

-Fオプション区切り文字 を指定できます。

$ cat test.txt 
1111,aaaa,AAAA
2222,bbbb,BBBB
3333,cccc,CCCC
$ awk -F',' '{print $1, $3}' test.txt 
1111 AAAA
2222 BBBB
3333 CCCC

区切り文字に、: / の2つを指定してみます。

$ echo "111:aaa/bbb" | awk -F'[:/]' '{print $1, $3}'
111 bbb

パターンを指定

'パターン {アクション}' と記述すると、 パターンに一致する行のみ アクションを実施します。

以下例では、 行番号が1より大きく かつ 5フィールド目が256である という条件に一致する行のみ出力します。

$ ls -l
total 0
drwxr-xr-x  22 root  staff   704 Apr 12 23:38 Auth
drwxr-xr-x  14 root  staff   448 Apr 12 23:38 Broadcasting
drwxr-xr-x   6 root  staff   192 Apr 12 23:38 Bus
drwxr-xr-x  26 root  staff   832 Apr 12 23:38 Cache
drwxr-xr-x   4 root  staff   128 Apr 12 23:38 Config
drwxr-xr-x  12 root  staff   384 Apr 12 23:38 Console
drwxr-xr-x   7 root  staff   224 Apr 12 23:38 Container
drwxr-xr-x  31 root  staff   992 Apr 12 23:38 Contracts
drwxr-xr-x   6 root  staff   192 Apr 12 23:38 Cookie
drwxr-xr-x  29 root  staff   928 Apr 12 23:38 Database
drwxr-xr-x   5 root  staff   160 Apr 12 23:38 Encryption
drwxr-xr-x   6 root  staff   192 Apr 12 23:38 Events
drwxr-xr-x   8 root  staff   256 Apr 12 23:38 Filesystem
drwxr-xr-x  22 root  staff   704 Apr 12 23:38 Foundation
drwxr-xr-x   7 root  staff   224 Apr 12 23:38 Hashing
drwxr-xr-x  16 root  staff   512 Apr 12 23:38 Http
drwxr-xr-x   7 root  staff   224 Apr 12 23:38 Log
drwxr-xr-x  14 root  staff   448 Apr 12 23:38 Mail
drwxr-xr-x  20 root  staff   640 Apr 12 23:38 Notifications
drwxr-xr-x   9 root  staff   288 Apr 12 23:38 Pagination
drwxr-xr-x   6 root  staff   192 Apr 12 23:38 Pipeline
drwxr-xr-x  32 root  staff  1024 Apr 12 23:38 Queue
drwxr-xr-x   8 root  staff   256 Apr 12 23:38 Redis
drwxr-xr-x  36 root  staff  1152 Apr 12 23:38 Routing
drwxr-xr-x  16 root  staff   512 Apr 12 23:38 Session
drwxr-xr-x  27 root  staff   864 Apr 12 23:38 Support
drwxr-xr-x   8 root  staff   256 Apr 12 23:38 Translation
drwxr-xr-x  17 root  staff   544 Apr 12 23:38 Validation
drwxr-xr-x  13 root  staff   416 Apr 12 23:38 View
$
$ ls -l | awk 'NR>1 && $5==256 {print $5, $9}'
256 Filesystem
256 Redis
256 Translation

特定行から特定行までを抽出

awkを利用すると、特定文字列が含まれている行 から 特定文字列が含まれている行 までの内容を抽出をすることができます。

$ cat tmp.html 
<div>
  <h1>Hello World</h1>
  <ul class="list-main">
    <li>aaaaa</li>
    <li>bbbbb</li>
  </ul>
  <h3>Essential Links</h3>
  <ul class="list-sub">
    <li>11111</li>
    <li>22222</li>
    <li>33333</li>
  </ul>
</div>

上記HTMLの <ul class="list-main"> から </ul> までの行を抽出するには以下のようにします。

$ cat tmp.html | awk '/<ul class="list-main"/,/<\/ul/'
  <ul class="list-main">
    <li>aaaaa</li>
    <li>bbbbb</li>
  </ul>
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。