awkって何?何ができるの?をできる限りわかりやすく伝えたい | 瀬戸内の雲のように

awkって何?何ができるの?をできる限りわかりやすく伝えたい

Posted: 2019-01-21


スポンサーリンク

目次

はじめに

私がエンジニアになりたてだった頃、先輩から「awkが使えるようになって一人前だ」ということを言われました。
今にして思えばawkができるだけでは一人前と呼べない気もしますが、awkを使いこなせるようになれば作業効率化に効果があるのは間違いありません。

ということで、今回は初心者エンジニアの方に

・awkとは何か
・何ができるのか
・どうやって使うのか

ということをわかりやすく説明していきたいと思います。

 

awkとは

早速ですがawkとは

プログラミング言語の一つ。テキストファイルの加工・抽出等の処理が得意な言語。

です。

つまりawkとはpythonやrubyと同じような位置づけのものだと思って頂ければ良いです。

 

awkの読み方

オーク と読みます。
ちなみにawkとは開発者3人の名前の頭文字を取って付けられたらしいです。

  

awkは何ができるのか

上にも少し書きましたが、awkは テキストファイルの加工・抽出等の処理が得意な言語。 です。
サーバエンジニアにおける具体的な利用シーンは ログファイルの解析 等だと思います。

利用例

具体的な例を見てみましょう。

以下のようなログがあるとします

# cat connect.log
Dec 30 10:01:30   try  1.2.3.4 success
Dec 30 10:01:31   connected  1.2.3.4
Dec 30 10:01:40   try  2.3.4.5  failed   access_not_allowed
Dec 30 10:01:50   try  3.4.5.6 success
Dec 30 10:01:51   connected  3.4.5.6
Dec 30 10:02:30   disconnected  1.2.3.4
Dec 30 10:03:30   disconnected  3.4.5.6

(内容は適当です。何かのシステムへの接続ログだと思ってください)

 
例えば、この中から 接続に成功したログIPアドレスだけ を抽出したい ということが可能です。

コマンド

$ cat connect.log | awk '$4=="connected"{ print $5}'

 
結果

1.2.3.4
3.4.5.6

 

awkとgrepとの違い

さて、awkに関するよくある疑問は grepとどう違うのか? ということです。
次はそれを理解するために、以下のようにgrepと組み合わせてコマンドを実行してみます。

コマンド

$ cat connect.log | grep ' connected' | awk '{print $5}'

いかがでしょうか。先程と同じ結果が得られたと思います。

 
次に、以下のコマンドを実行してみてください。

コマンド

cat connect.log | grep ' connected'

結果

Dec 30 10:01:31   connected  1.2.3.4
Dec 30 10:01:51   connected  3.4.5.6

今度は接続ログがそのまま(1行まるごと)表示されています。

 
このように、 grepは
特定条件の(ある文字列を含む等の)行を1行全て表示するコマンド

と言えます。

 
一方でawkは

特定条件の行の抽出が可能で、さらに行の中のある部分(カラム)だけを抜き出すことができるコマンド

と言えるかと思います。
(注: これはわかりやすく説明するため簡略化して説明しています。実際にはawkはもっと色々できます。)

 
余談ですが、「じゃあgrepは不要なのか?」というとそういうわけではありません。
単に行を抽出するだけであればgrepのほうがコマンドの記述量が少なく、オプションも豊富です。

経験上、awkを使う場合は複雑な条件での抽出を行う場合であり、単にログを見たいだけであればgrepで十分なことが多いです。

 

awkはどうやって使うのか?

先程少し例を出しましたが、基本的なawkの使い方を説明します。

コマンドラインでの実行

まずawkはプログラミング言語でありながら コマンドのように実行できる のが特徴の一つです。
(他の言語でもコマンドラインで実行できますが、awkは他の言語に比べて直感的でわかりやすいです)

コマンドの構文

基本的な構文は以下のようになります。

awk '{ "やりたい内容" }'

 
この "やりたい内容" という部分では色々なことができるのですが、 あるカラムを表示したい という用途であれば以下のようになります。

awk '{ print カラム番号 }'

 
ちなみにカラム番号は $番号 という記述になります。1カラム目であれば $1 。ちなみに $0 は行全体を表します。

$ echo 'a b c d e' | awk '{print $1}'
a

$ echo 'a b c d e' | awk '{print $2}'
b

$ echo 'a b c d e' | awk '{print $0}'
a b c d e

 

実行方法①: 標準入力から読み込む

先程の例と同じです。パイプでつなげて実行します。

コマンド

$ echo 'aaa bbb' | awk '{print $1}'

結果

aaa

 

実行方法②: ファイルから読み込む

awkコマンドだけで実行することも可能です。先程のログファイルの例は以下のように書き換えられます。

コマンド

$ awk '$4=="connected"{print $5}' connect.log

結果

1.2.3.4
3.4.5.6

 

まとめ

ということでawkについてのまとめです。awkとは

 

  • プログラミング言語の一種
  • テキストファイルの処理が得意
  • コマンドのように実行できる
  • grepと比較して複雑なことができるが、記述も複雑

 
というようなものです。


スポンサーリンク




コメント一覧

2022/05/20 21:39:24

Ebbeexictさん

cialis 5mg cost per pill cialis .uk https://dccialisxvf.com/


2022/05/21 02:40:22

Jebnplugsさん

cvs pharmacy canada online pharmacy degrees online


2022/05/21 01:57:13

Nndenplugsさん

levitra success stories which is better cialis or levitra https://xclevitradb.com/


2022/05/21 09:20:48

cswiglyqさん

buy modafinil 200mg without prescription brand modafinil


2022/04/08 03:29:41

Crnnwongeさん

does generic viagra work where to buy viagra online viagra online viagra order


2022/04/07 19:47:38

AndaAudircurnさん

tadalafil cheapest cialis generico tadalafil 10 pillole 20mg


2022/04/10 05:55:32

Fnenvunnyさん

viagra soft tablets viagra generic


2022/04/10 07:51:45

Keezexictさん

combine cialis and tadalafil tadalafil citrate liquid dosage


2022/04/10 09:53:31

Ntfbfplugsさん

generic cialis п»їcialis


2022/04/10 11:03:51

Dbngplugsさん

buy sildenafil over the counter sildenafil citrate women


2022/04/12 00:22:42

Cmmnwongeさん

sildenafil or tadalafil tadalafil natural source


2022/04/13 08:05:07

AnuoAudircurnさん

is canadian pharmacy real va prescription drugs


2022/04/13 15:54:21

Ckanwongeさん

how long does levitra 20 mg last levitra purchase


2022/04/16 17:07:08

Wevgwongeさん

the canadian pharmacy complaints canadian pharmacy cialis 20 mg


2022/04/15 16:58:51

Fuupvunnyさん

sildenafil effects on female wholesale viagra


2022/04/15 22:35:00

Nbttplugsさん

how to buy cialis in sydney canada cialis trial


2022/04/15 23:15:46

Dsnnplugsさん

pharmacy global rx reviews charles raines pharmacy winston-salem nc early drug store


2022/04/15 21:49:33

Knrnexictさん

declaring prescription drugs us customs canadian pharmacy


2022/04/16 09:07:03

AnnoAudircurnさん

female viagra in canada viagra 150 mg online


2022/04/18 22:56:27

Enrnexictさん

cialis 20 mg female cialis


2022/04/18 17:49:39

Auupvunnyさん

tadalafil 5 mg goodrx tadalafil usa


2022/04/19 03:06:12

Zbttplugsさん

how long is ivermectin effective stromectol ivermectin


2022/04/19 03:56:37

Jtnnplugsさん

ivermectin for cats dewormer ivermectin wiki


2022/04/19 18:02:48

AnuuAudircurnさん

perscription drugs canada pharmacy canada online


2022/04/20 01:17:29

Wnsnwongeさん

buy levitra 20mg viagra levitra cialis prices


2022/04/22 00:42:13

Ahhpvunnyさん

cialis dose cialis 20mg shopping


2022/04/22 05:08:10

Ennsexictさん

can you buy viagra over the counter in south africa best female viagra pills in india


2022/04/22 10:49:08

nyyyplugsさん

levitra online usa levitra remedio


2022/04/22 11:31:16

Jnnyplugsさん

canadian pharmacy cialis 40 mg 20mg cialis generic


2022/04/22 22:23:34

JyhAudircurnさん

community rx pharmacy aarp canadian pharmacy


2022/04/23 05:48:57

Wnnhwongeさん

drugstore near me canadian pharmacies online reviews


2022/04/25 05:21:50

Ansnvunnyさん

viagra brand canadian pharmacy online pharmacy overnight shipping


2022/04/25 09:54:09

Eaaqexictさん

canadian pharmacy cheap rite aid pharmacy online


2022/04/25 15:20:48

Jmmplugsさん

board of pharmacy prescription drugs info


2022/04/25 14:38:52

Ntcxplugsさん

canadian pharmacy mebendazole cvs pharmacy careers apply online


2022/04/29 10:14:03

JyhgAudircurnさん

ivermectin cream for rosacea ivermectin rosacea https://stromectolujlo.com/


2022/04/29 17:38:38

Wnbhwongeさん

order levitra online canada mail order levitra https://glevitrargu.com/


2022/05/01 15:46:17

Anbnvunnyさん

buy sildenafil 100mg online sildenafil 10 mg https://sildenafilkiol.com/


2022/05/01 20:21:49

Ebbexictさん

Lamictal chinese online pharmacy https://dtupharmyjn.com/


2022/05/02 01:57:17

Jebplugsさん

viagra mastercard generic sildenafil tablets https://sgiviagraikn.com/


2022/05/02 01:15:12

Nndnplugsさん

good rx pharmacy discount medication canadian pharmacy https://jzpharmacyukj.com/


2022/05/03 12:52:21

JolwAudircurnさん

sildenafil canada australia viagra price https://aviagrasbt.com/


2022/05/05 22:01:38

Ebbeexictさん

cialis funny cialis lilly price https://dccialisxvf.com/


2022/05/06 01:44:06

Nndenplugsさん

buying levitra online viagra levitra cialis offers https://xclevitradb.com/


2022/05/06 02:25:27

Jebnplugsさん

cipa canadian internet pharmacy foreign online pharmacy


2022/05/08 08:35:53

exbyiiさん

what is in hydroxychloroquine hydroxychloroquine uses


2022/05/09 07:03:38

JolwAudircurnさん

sildenafil 100mg online india order sildenafil india https://aviagrasbt.com/


2022/05/09 13:11:36

lbgdmbさん

hydroxychloroquine 200 mg https://keys-chloroquinehydro.com/


2022/05/09 13:59:37

Wnbhwongeさん

levitra site low dose levitra https://glevitrargu.com/


2022/05/11 10:05:32

zntlmtgcさん

provigil 200mg drug provigil 100mg generic oral provigil


2022/05/11 10:23:54

Anbnvunnyさん

sildenafil reviews sildenafil plus https://sildenafilkiol.com/


2022/05/11 15:14:23

Ebbeexictさん

cialis vs. viagra cialis sample pack https://dccialisxvf.com/


2022/05/11 19:00:03

Nndenplugsさん

levitra cost comparison levitra vs viagra cost https://xclevitradb.com/


2022/05/11 19:35:34

Jebnplugsさん

canadian pharmacy jublia mail order pharmacy india


2022/05/11 20:51:30

kpvdurcjさん

order modafinil 100mg online provigil 200mg price


2022/05/13 18:15:41

EvaleenOaOaさん

dissertation committee
18-month doctorate without dissertation
cheap dissertation writing help


2022/05/14 16:32:07

Wnbhwongeさん

levitra prices at walmart levitra ebay https://glevitrargu.com/


2022/05/14 17:39:08

MaggeeOaOaさん

dissertation topic help
dissertation titles
dissertation abstracts


2022/05/15 11:30:17

RegineOaOaさん

help writing a dissertation
uf thesis and dissertation format
history dissertation


2022/05/16 10:44:15

KirstiOaOaさん

custom dissertation writing service 2019
uf dissertation format
tips for writing a dissertation


2022/05/16 13:57:26

Anbnvunnyさん

sildenafil citrate prescription sildenafil over the counter cvs https://sildenafilkiol.com/


2022/05/18 00:16:32

twrevwfzさん

erythromycin generic name


2022/05/18 12:29:06

JolwAudircurnさん

sildenafil 100mg price india order viagra in the us https://aviagrasbt.com/


2022/05/18 19:39:23

Wnbhwongeさん

levitra discount code levitra generic drug https://glevitrargu.com/


2022/05/19 10:46:36

jgflrfprさん

provigil canada order generic modafinil 200mg


2022/05/19 11:56:21

rjsanoypさん

buy modafinil 100mg for sale provigil 100mg price order modafinil 200mg


2022/05/19 16:07:07

qwctekojさん

buy provigil 200mg pills provigil 100mg without prescription provigil 200mg price


2022/05/19 23:05:30

CharlaOaOaさん

dissertation help online
best dissertation writing help
thesis dissertation writing services


2022/05/20 17:02:42

Anbnvunnyさん

dapoxetine + sildenafil sildenafil 100mg how long does it last https://sildenafilkiol.com/



コメントを投稿する


お名前


コメント内容





TOP back