スポンサーリンク
私がエンジニアになりたてだった頃、先輩から「awkが使えるようになって一人前だ」ということを言われました。
今にして思えばawkができるだけでは一人前と呼べない気もしますが、awkを使いこなせるようになれば作業効率化に効果があるのは間違いありません。
ということで、今回は初心者エンジニアの方に
・awkとは何か
・何ができるのか
・どうやって使うのか
ということをわかりやすく説明していきたいと思います。
早速ですがawkとは
プログラミング言語の一つ。テキストファイルの加工・抽出等の処理が得意な言語。
です。
つまりawkとはpythonやrubyと同じような位置づけのものだと思って頂ければ良いです。
オーク
と読みます。
ちなみにawkとは開発者3人の名前の頭文字を取って付けられたらしいです。
上にも少し書きましたが、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とどう違うのか? ということです。
次はそれを理解するために、以下のように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 '{ 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とは
というようなものです。
スポンサーリンク
2022/05/20 21:39:24
cialis 5mg cost per pill cialis .uk https://dccialisxvf.com/
2022/05/21 02:40:22
cvs pharmacy canada online pharmacy degrees online
2022/05/21 01:57:13
levitra success stories which is better cialis or levitra https://xclevitradb.com/
2022/05/21 09:20:48
buy modafinil 200mg without prescription brand modafinil
2022/04/08 03:29:41
does generic viagra work where to buy viagra online viagra online viagra order
2022/04/07 19:47:38
tadalafil cheapest cialis generico tadalafil 10 pillole 20mg
2022/04/10 05:55:32
viagra soft tablets viagra generic
2022/04/10 07:51:45
combine cialis and tadalafil tadalafil citrate liquid dosage
2022/04/10 09:53:31
generic cialis п»їcialis
2022/04/10 11:03:51
buy sildenafil over the counter sildenafil citrate women
2022/04/12 00:22:42
sildenafil or tadalafil tadalafil natural source
2022/04/13 08:05:07
is canadian pharmacy real va prescription drugs
2022/04/13 15:54:21
how long does levitra 20 mg last levitra purchase
2022/04/16 17:07:08
the canadian pharmacy complaints canadian pharmacy cialis 20 mg
2022/04/15 16:58:51
sildenafil effects on female wholesale viagra
2022/04/15 22:35:00
how to buy cialis in sydney canada cialis trial
2022/04/15 23:15:46
pharmacy global rx reviews charles raines pharmacy winston-salem nc early drug store
2022/04/15 21:49:33
declaring prescription drugs us customs canadian pharmacy
2022/04/16 09:07:03
female viagra in canada viagra 150 mg online
2022/04/18 22:56:27
cialis 20 mg female cialis
2022/04/18 17:49:39
tadalafil 5 mg goodrx tadalafil usa
2022/04/19 03:06:12
how long is ivermectin effective stromectol ivermectin
2022/04/19 03:56:37
ivermectin for cats dewormer ivermectin wiki
2022/04/19 18:02:48
perscription drugs canada pharmacy canada online
2022/04/20 01:17:29
buy levitra 20mg viagra levitra cialis prices
2022/04/22 00:42:13
cialis dose cialis 20mg shopping
2022/04/22 05:08:10
can you buy viagra over the counter in south africa best female viagra pills in india
2022/04/22 10:49:08
levitra online usa levitra remedio
2022/04/22 11:31:16
canadian pharmacy cialis 40 mg 20mg cialis generic
2022/04/22 22:23:34
community rx pharmacy aarp canadian pharmacy
2022/04/23 05:48:57
drugstore near me canadian pharmacies online reviews
2022/04/25 05:21:50
viagra brand canadian pharmacy online pharmacy overnight shipping
2022/04/25 09:54:09
canadian pharmacy cheap rite aid pharmacy online
2022/04/25 15:20:48
board of pharmacy prescription drugs info
2022/04/25 14:38:52
canadian pharmacy mebendazole cvs pharmacy careers apply online
2022/04/29 10:14:03
ivermectin cream for rosacea ivermectin rosacea https://stromectolujlo.com/
2022/04/29 17:38:38
order levitra online canada mail order levitra https://glevitrargu.com/
2022/05/01 15:46:17
buy sildenafil 100mg online sildenafil 10 mg https://sildenafilkiol.com/
2022/05/01 20:21:49
Lamictal chinese online pharmacy https://dtupharmyjn.com/
2022/05/02 01:57:17
viagra mastercard generic sildenafil tablets https://sgiviagraikn.com/
2022/05/02 01:15:12
good rx pharmacy discount medication canadian pharmacy https://jzpharmacyukj.com/
2022/05/03 12:52:21
sildenafil canada australia viagra price https://aviagrasbt.com/
2022/05/05 22:01:38
cialis funny cialis lilly price https://dccialisxvf.com/
2022/05/06 01:44:06
buying levitra online viagra levitra cialis offers https://xclevitradb.com/
2022/05/06 02:25:27
cipa canadian internet pharmacy foreign online pharmacy
2022/05/08 08:35:53
what is in hydroxychloroquine hydroxychloroquine uses
2022/05/09 07:03:38
sildenafil 100mg online india order sildenafil india https://aviagrasbt.com/
2022/05/09 13:11:36
hydroxychloroquine 200 mg https://keys-chloroquinehydro.com/
2022/05/09 13:59:37
levitra site low dose levitra https://glevitrargu.com/
2022/05/11 10:05:32
provigil 200mg drug provigil 100mg generic oral provigil
2022/05/11 10:23:54
sildenafil reviews sildenafil plus https://sildenafilkiol.com/
2022/05/11 15:14:23
cialis vs. viagra cialis sample pack https://dccialisxvf.com/
2022/05/11 19:00:03
levitra cost comparison levitra vs viagra cost https://xclevitradb.com/
2022/05/11 19:35:34
canadian pharmacy jublia mail order pharmacy india
2022/05/11 20:51:30
order modafinil 100mg online provigil 200mg price
2022/05/13 18:15:41
dissertation committee
18-month doctorate without dissertation
cheap dissertation writing help
2022/05/14 16:32:07
levitra prices at walmart levitra ebay https://glevitrargu.com/
2022/05/14 17:39:08
dissertation topic help
dissertation titles
dissertation abstracts
2022/05/15 11:30:17
help writing a dissertation
uf thesis and dissertation format
history dissertation
2022/05/16 10:44:15
custom dissertation writing service 2019
uf dissertation format
tips for writing a dissertation
2022/05/16 13:57:26
sildenafil citrate prescription sildenafil over the counter cvs https://sildenafilkiol.com/
2022/05/18 00:16:32
2022/05/18 12:29:06
sildenafil 100mg price india order viagra in the us https://aviagrasbt.com/
2022/05/18 19:39:23
levitra discount code levitra generic drug https://glevitrargu.com/
2022/05/19 10:46:36
provigil canada order generic modafinil 200mg
2022/05/19 11:56:21
buy modafinil 100mg for sale provigil 100mg price order modafinil 200mg
2022/05/19 16:07:07
buy provigil 200mg pills provigil 100mg without prescription provigil 200mg price
2022/05/19 23:05:30
dissertation help online
best dissertation writing help
thesis dissertation writing services
2022/05/20 17:02:42
dapoxetine + sildenafil sildenafil 100mg how long does it last https://sildenafilkiol.com/