Simple Sand Samples |
説明のないとってもシンプルなサンプルプログラム集
COBOL | awk | C言語 | D言語 | GO言語 | Lua | Vim |
bash | Perl | Gauche | Clojure | CLISP | EmacsLisp | VimScript |
tcsh | Ruby | Groovy | Java | C# | VBScript | JavaScript |
Io言語 | Python | Erlang | Scala | VB.NET | Excel/VBA | PHP |
Tcl | Haskell | OCaml | PowerShell | Windows | Unix/Linux |
Linuxコマンド > awk awkコマンド
|
|
~$ cat sample5.txt
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28
29 30 31 32
33 34 35 36
37 38 39 40
~$
17 18 19 20
~$
5 6 7 8
9 10 11 12
~$
29 30 31 32
33 34 35 36
37 38 39 40
~$
5 6 7 8
33 34 35 36
37 38 39 40
~$
55
~$
H
E
L
L
O
~$
~$ ls
aa bb cc
~$ head -1 * | cat -n
1 ==> aa <==
2 #!/bin/bash
3
4 # bashでHELLOと表示するスクリプト
5
6 ==> bb <==
7 #!/usr/bin/perl
8
9 # perlでHELLOと表示するスクリプト
10
11 ==> cc <==
12 #!/usr/bin/python
13 # -*- coding:utf8 -*-
14 # pythonでHELLOと表示するスクリプト
~$
~$
#!/bin/bash bashでHELLOと表示するスクリプト
#!/usr/bin/perl perlでHELLOと表示するスクリプト
#!/usr/bin/python pythonでHELLOと表示するスクリプト
~$
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28
29 30 31 32
33 34 35 36
37 38 39 40
~$
指定行のみ抽出(5行目)
~$ awk 'NR==5' sample5.txt17 18 19 20
~$
指定行のみ抽出(2行目から3行)
~$ awk 'NR>=1 && NR<=3' sample5.txt5 6 7 8
9 10 11 12
~$
指定行のみ抽出(8行目以降すべて)
~$ awk 'NR>=8' sample5.txt29 30 31 32
33 34 35 36
37 38 39 40
~$
正規表現でマッチした行のみ抽出
~$ awk '/^[345]/' sample5.txt5 6 7 8
33 34 35 36
37 38 39 40
~$
累計する
~$ seq 10 | awk '{sum+=$0}END{print sum}'55
~$
1文字ずつ分割する
~$ echo HELLO | awk 'BEGIN{FS=""}{for(i=1;i<=NF;i++)print $i}'H
E
L
L
O
~$
~$ ls
aa bb cc
~$ head -1 * | cat -n
1 ==> aa <==
2 #!/bin/bash
3
4 # bashでHELLOと表示するスクリプト
5
6 ==> bb <==
7 #!/usr/bin/perl
8
9 # perlでHELLOと表示するスクリプト
10
11 ==> cc <==
12 #!/usr/bin/python
13 # -*- coding:utf8 -*-
14 # pythonでHELLOと表示するスクリプト
~$
複数ファイルの指定行の表示
~$ awk 'FNR==1' *~$
複数ファイルの指定行の表示
~$ awk 'FNR==1{printf"%-20s",$1} FNR==3{print $2}' *#!/bin/bash bashでHELLOと表示するスクリプト
#!/usr/bin/perl perlでHELLOと表示するスクリプト
#!/usr/bin/python pythonでHELLOと表示するスクリプト
~$