【awk】カラム位置を表示する方法 | 瀬戸内の雲のように

【awk】カラム位置を表示する方法

Posted: 2019-02-11


スポンサーリンク

目次

はじめに

何年か前に「お前コードって書けるの?」と上司に聞かれて「はい、まぁ。。。bashとかawkなら。。」と答えたところ、「それはプログラミングとは言わん!」と言われた私です。
懲りずにawkのtipsを書いていきます。

 

今回やりたいこと

awkを使うとき、「このカラムだけ抜き出したい」と思うことってありますよね。と言うかawkを使うときは大半がそんな理由です。
そんなとき、私は目視で数えることが多いんですが、これって意外と時間がかかってしまいます。
そんで間違ってたりすると、「あああ、もう!」 ってなっちゃいます。

と言うことで、今回は少しスマートにやる方法を書いていきたいと思います。

 

環境

大抵のlinuxなら動くと思います。

 

方法

と言うことで早速ですがやり方を書いていきます。

前提

以下のようなファイルを例に説明していきます。

# cat httpd.log
93.72.182.31 - - [12/Feb/2019:03:16:54 +0900] "GET /blogs/43/ HTTP/1.0" 200 16589 "https://www.setouchino.cloud/blogs/43/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"
157.55.39.80 - - [12/Feb/2019:03:20:39 +0900] "GET / HTTP/1.1" 200 15289 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
40.77.167.168 - - [12/Feb/2019:03:21:29 +0900] "GET /blogs/32 HTTP/1.1" 200 19543 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
157.55.39.80 - - [12/Feb/2019:03:42:13 +0900] "GET /blogs/75 HTTP/1.1" 200 15675 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
202.241.208.102 - - [12/Feb/2019:03:46:13 +0900] "GET /ads.txt HTTP/1.1" 404 1564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /blogs/34 HTTP/1.1" 200 15997 "https://www.google.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /assets/application-a59573c82db0e744fde06a0ffd9b6826ca382f5e33035851f92a5cd8a4acb329.css HTTP/1.1" 200 143014 "https://www.setouchino.cloud/blogs/34" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /assets/setouchi-af48e4bdab27db4b7c7bf0f4f2c507cb71700b2b93fd15a4c6a3915f9a94f086.jpg HTTP/1.1" 200 22747 "https://www.setouchino.cloud/blogs/34" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /assets/logo2_small-14b4e860c00ad245c22f53f642f267a68aaf958a6580b1e1f84e3a986f1456a3.png HTTP/1.1" 200 6059 "https://www.setouchino.cloud/blogs/34" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /uploads/picture/image/40/size_400x300_gvim.png HTTP/1.1" 200 27496 "https://www.setouchino.cloud/blogs/34" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /uploads/picture/image/41/size_400x300_gvim2.png HTTP/1.1" 200 99020 "https://www.setouchino.cloud/blogs/34" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"
61.22.113.206 - - [12/Feb/2019:03:47:59 +0900] "GET /favicon.ico HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0"

このように 同じフォーマットの内容が複数行出力された ファイルの場合に使う前提です。
このログから アクセスされたURL のカラム位置を知りたい場合を想定してください。

コマンド

今回は for文を使ったやり方を説明します。

コマンド

awk 'NR==1{for(i=1;i<NF;i++){print i "カラム目は: " $i "です"}}' httpd.log

結果は以下の通り。

1カラム目は: 93.72.182.31です
2カラム目は: -です
3カラム目は: -です
4カラム目は: [12/Feb/2019:03:16:54です
5カラム目は: +0900]です
6カラム目は: "GETです
7カラム目は: /blogs/43/です
8カラム目は: HTTP/1.0"です
9カラム目は: 200です
10カラム目は: 16589です
11カラム目は: "https://www.setouchino.cloud/blogs/43/"です
12カラム目は: "Mozilla/5.0です
13カラム目は: (Windowsです
14カラム目は: NTです
15カラム目は: 10.0;です
16カラム目は: Win64;です
17カラム目は: x64)です
18カラム目は: AppleWebKit/537.36です
19カラム目は: (KHTML,です
20カラム目は: likeです
21カラム目は: Gecko)です
22カラム目は: Chrome/68.0.3440.84です

いかがでしょうか。URLが記載されているカラムは 11カラム目 であることがわかります。

解説

awkは区切りが分かりづらいので、もう少しわかりやすく書きます。

awk '
    NR==1{
        for(i=1;i<NF;i++){
              print i "カラム目は: " $i "です"
        }
    }' httpd.log

各行の意味は、

  • 2行目は NR(行番号)が1の場合のみ。つまり、 1行目だけを対象とする ということ (同じフォーマットが続く前提なので)
  • 3行目は for文で、 カラムの数だけ繰り返す という意味です。awkの $0 は行全体を表すので、 i=1で始めるのがコツです
  • 4行目は 現在のカラム番号と現在の内容を表示する行です

 

まとめ

ということでawkの各カラム番号を表示するやり方でした。


スポンサーリンク




コメント一覧

2022/05/14 09:51:10

Nndenplugsさん

coupon levitra levitra 2.5 mg https://xclevitradb.com/


2022/05/14 13:57:46

Jebnplugsさん

prescription drugs discount programs cheapest pharmacy for prescriptions without insurance


2022/05/14 15:05:14

Wnbhwongeさん

levitra 10mg oder 20mg levitra patent expiration date us https://glevitrargu.com/


2022/05/14 17:21:14

Anbnvunnyさん

como tomar sildenafil sildenafil tab 100mg https://sildenafilkiol.com/


2022/05/15 00:09:59

MaggeeOaOaさん

dissertation editing
social work dissertation help
dissertation help writers


2022/05/15 23:10:08

RegineOaOaさん

dissertation writing companies
proposal and dissertation help plan
writing a dissertation with adhd


2022/05/16 17:29:01

KirstiOaOaさん

proquest dissertation
defending a dissertation
dissertation help galway


2022/05/17 21:44:47

epqyjdwlさん

erythromycin definition http://erythromycinn.com/#


2022/05/18 09:12:35

qlivqdhmさん

order provigil 100mg for sale


2022/05/18 13:02:25

Nndenplugsさん

buying levitra can you buy levitra over the counter https://xclevitradb.com/


2022/05/18 15:57:56

nssbzhjyさん

erythromycin 250mg tablets mechanism of action of erythromycin


2022/05/18 17:12:41

Jebnplugsさん

Dulcolax canadian pharmacy world coupon code


2022/05/18 18:17:11

Wnbhwongeさん

no prescription levitra does levitra lower blood pressure https://glevitrargu.com/


2022/05/18 20:28:25

Anbnvunnyさん

sildenafil for women sildenafil and nitrates https://sildenafilkiol.com/


2022/05/18 22:45:57

JolwAudircurnさん

sildenafil coupon 50 mg viagra online over the counter https://aviagrasbt.com/


2022/05/19 00:50:29

zziisukcさん

cheap provigil 100mg buy generic modafinil 100mg


2022/05/19 04:56:10

cnbceqgjさん

purchase modafinil without prescription buy provigil 200mg pill modafinil 200mg usa


2022/05/19 06:18:16

Ebbeexictさん

cialis greece cialis,com https://dccialisxvf.com/


2022/05/19 09:15:01

akjhynmuさん

cost provigil 100mg modafinil 200mg generic


2022/05/19 11:56:56

tpojrsxcさん

buy modafinil 100mg online


2022/05/19 11:43:04

KirstiOaOaさん

doctoral dissertation writing service
dissertation prospectus example
nursing dissertation writing service


2022/05/20 13:45:37

CharlaOaOaさん

apa 7th edition dissertation example
i need help writing my dissertation
motivation for dissertation writing


2022/05/21 01:28:31

hbjmdoayさん

provigil 200mg drug provigil online modafinil 100mg canada


2022/05/21 06:06:53

kxkcyqemさん

provigil buy online provigil 100mg generic


2022/04/07 20:12:39

Ntfbfplugsさん

cialis online order cialis online


2022/04/08 00:21:18

Dbngplugsさん

sildenafil citrate for sale sildenafil 20 mg tab


2022/04/08 01:57:14

Crnnwongeさん

viagra overnight over the counter viagra buy viagra online no prescription viagra without a prescription


2022/04/08 04:22:31

Fnenvunnyさん

discount generic viagra buy viagra no prescription


2022/04/08 06:58:13

AndaAudircurnさん

tadalafil over the counter usa tadalafil 20 mg soft tabs


2022/04/08 13:55:45

Keezexictさん

rx tadalafil tadalafil softsules tuf-20


2022/04/11 17:03:03

Nmioplugsさん

canadian mail order pharmacy ratings planet drugs canada


2022/04/12 01:17:00

Fwbnvunnyさん

sildenafil tab what are the side effects of sildenafil tablets


2022/04/11 21:11:34

Dennplugsさん

no prescription needed pharmacy aetna online pharmacy


2022/04/11 22:49:32

Cmmnwongeさん

cialis tadalafil reviews when will teva's generic tadalafil be available in pharmacies


2022/04/12 08:06:42

Kbwnexictさん

buy viagra online uk fast delivery buy cheap viagra online canadian pharmacy


2022/04/13 08:27:49

Nbttplugsさん

cheap generic cialis in the us cialis uk


2022/04/13 12:43:42

Dsnnplugsさん

canadian prescriptions Voveran SR


2022/04/13 14:19:18

Ckanwongeさん

purchase levitra online levitra generique


2022/04/13 16:49:01

Fuupvunnyさん

buy liquid sildenafil citrate best viagra coupon


2022/04/13 19:14:09

AnuoAudircurnさん

online pharmacy codeine canadian drug pharmacy prices


2022/04/14 03:35:17

Knrnexictさん

rx health mart pharmacy pharmacy on line


2022/04/16 17:22:09

Auupvunnyさん

cialis same as tadalafil tadalafil ip


2022/04/16 09:34:15

Zbttplugsさん

ivermectin australia 2021 ivermectin horse wormer paste


2022/04/16 13:57:39

Jtnnplugsさん

1 ivermectin dosage for dogs how long for ivermectin to work


2022/04/16 15:35:39

Wevgwongeさん

generic rx online pharmacy online pharmacy overnight shipping


2022/04/16 20:39:46

AnnoAudircurnさん

viagra over the counter us viagra price in us


2022/04/17 05:10:10

Enrnexictさん

cialis dosage price comparison viagra cialis levitra


2022/04/19 18:31:45

nyyyplugsさん

cost of levitra at walmart pharmacy levitra 20mg tablets price


2022/04/19 23:50:33

Wnsnwongeさん

canadian pharmacy levitra value pack which is better viagra or levitra


2022/04/19 22:44:49

Jnnyplugsさん

cialis prescription assistance program cialis canadian


2022/04/20 02:08:51

Ahhpvunnyさん

cialis uk us pharmacy cialis


2022/04/20 04:40:01

AnuuAudircurnさん

domperidone canada drugs what time does cvs pharmacy inside target store open today?


2022/04/20 12:34:17

Ennsexictさん

cheap viagra free shipping where can i order viagra online


2022/04/22 22:50:45

Ntcxplugsさん

the pharmacy store phentermine reliable rx pharmacy coupons


2022/04/23 03:13:12

Jmmplugsさん

free pharmacy tech training online Clomid


2022/04/23 06:38:51

Ansnvunnyさん

online pet pharmacy canada kex rx pharmacy atchison ks


2022/04/23 04:21:11

Wnnhwongeさん

safe canadian online pharmacy are canadian online pharmacies safe


2022/04/23 09:04:52

JyhAudircurnさん

pharmacy technician salary canada ontario how to buy prescription drugs in canada


2022/04/23 17:00:40

Eaaqexictさん

turkey pharmacy online california board of pharmacy


2022/04/29 10:41:54

Nndnplugsさん

buy viagra from canadian pharmacy super saver pharmacy https://jzpharmacyukj.com/


2022/04/29 15:00:57

Jebplugsさん

sildenafil 100mg free shipping canadian pharmacy generic viagra https://sgiviagraikn.com/


2022/04/29 16:10:55

Wnbhwongeさん

levitra 10 mg reviews cialis levitra https://glevitrargu.com/


2022/04/29 18:28:23

Anbnvunnyさん

sildenafil 20 mg dosage for ed sildenafil liquid https://sildenafilkiol.com/


2022/04/29 20:47:33

JyhgAudircurnさん

ivermectin inflammation ivermectin cream uses https://stromectolujlo.com/


2022/04/30 04:32:12

Ebbexictさん

canadian association pharmacy technicians canadian pharmacy vipps approved https://dtupharmyjn.com/


2022/05/03 13:21:15

Nndenplugsさん

levitra pens levitra 40 mg canada https://xclevitradb.com/


2022/05/03 17:28:57

Jebnplugsさん

24 7 online pharmacy Valtrex


2022/05/03 23:06:44

JolwAudircurnさん

female viagra pills in india sildenafil 60mg price https://aviagrasbt.com/


2022/05/04 06:49:40

Ebbeexictさん

cialis price per pill comparison of 10 mg cialis price https://dccialisxvf.com/


2022/05/05 09:50:54

jugudivyさん

modafinil 100mg usa buy modafinil sale


2022/05/05 14:08:09

tbbyihさん

hydroxychloroquine tablet plaquenil uses


2022/05/09 07:29:24

Nndenplugsさん

levitra 20 mg cost levitra blood pressure https://xclevitradb.com/


2022/05/09 11:31:03

Jebnplugsさん

top canada drugs price chopper pharmacy


2022/05/09 12:37:10

Wnbhwongeさん

comparison viagra cialis levitra levitra from canada https://glevitrargu.com/


2022/05/09 14:48:16

Anbnvunnyさん

online prescription for sildenafil how effective is sildenafil https://sildenafilkiol.com/


2022/05/09 17:16:56

JolwAudircurnさん

sildenafil price 50 mg 60 mg viagra https://aviagrasbt.com/


2022/05/10 00:41:15

Ebbeexictさん

free trial cialis cost of cialis at cvs https://dccialisxvf.com/



コメントを投稿する


お名前


コメント内容





TOP back