Awk、Perl、Ruby、Python – 4つのスクリプト言語の仕様解説
本記事では、Awk、Perl、Ruby、Pythonという4つの代表的なスクリプト言語の仕様を詳細に解説していきます。それぞれの言語の特徴や文法、利用シーンなどを細かく説明しますので、これからスクリプト言語を学ぶ方や言語選定の参考にしていただけると思います。
Awk
Awkは、テキスト処理を主な目的として設計されたスクリプト言語です。ワンライナーで記述でき、シェルスクリプトの代替として使われることが多いのが特徴です。
基本文法
パターン {アクション}
テキストファイルの各行に対してパターンとアクションを適用していきます。awkプログラムは、複数の「パターン{アクション}」の組み合わせで構成されます。
例:
# 1列目の値が"foo"の行を出力
$1 == "foo" { print $0 }
フィールド変数
awkでは、入力行は自動的にフィールド変数($1
、$2
…)に格納されます。$0
は入力行全体を表します。これらのフィールド変数を使ってデータ処理を行います。
主な利用シーン
- ログファイルの解析
- CSVやTSVファイルの処理
- テキストレポートの生成
- シェルスクリプトでのテキスト処理
Perl
Perlは、1987年にリリースされた歴史のある汎用スクリプト言語です。テキスト処理や系列データ処理が得意で、CGIスクリプトの記述によく使われています。
基本文法
Perlのスクリプトは、パッケージ、変数、関数、制御文、正規表現などの構文で構成されます。
#!/usr/bin/perl
package MyPackage;
# 変数
my $var = "Hello, Perl!";
# 関数
sub myFunction {
# 制御文
if (...) {
...
} else {
...
}
# 正規表現
if ($var =~ /Hello/) {
...
}
}
# メイン処理
myFunction();
特徴
- TMTOWTDI(There’s More Than One Way To Do It)の哲学に基づく柔軟性の高さ
- 豊富な組み込みデータ構造とオペレータ
- 正規表現のネイティブサポート
- CPAN(包括的なモジュールリポジトリ)
主な利用シーン
- Webアプリケーション開発(CGIスクリプト)
- システム管理タスク自動化
- データ変換・加工
- テキスト解析・処理
Ruby
RubyはPerlと同様に汎用のスクリプト言語で、シンプルさと高い生産性が特徴です。Railsという人気の高いWebアプリケーションフレームワークがあり、Ruby on Railsと呼ばれることも多いです。
基本文法
Rubyのコーディングスタイルは、Pythonやその他の汎用言語と非常に似ています。
# 変数とメソッド
name = "Ruby"
puts "Hello, #{name}!"
# 配列
array = [1, 2, 3, 4, 5]
# ハッシュ
hash = { "name" => "Ruby", "type" => "動的型付け言語" }
# クラス定義
class MyClass
def initialize(name)
@name = name
end
def hello
puts "Hello, I am #{@name}!"
end
end
# インスタンス化とメソッド呼び出し
obj = MyClass.new("Ruby")
obj.hello
特徴
- 読みやすさとクリーンなシンタックスを重視したデザイン
- オブジェクト指向とその低行動のサポート
- メタプログラミングの文化
- 豊富な標準ライブラリとGemでの拡張性
主な利用シーン
- Webアプリケーション開発(Ruby on Rails)
- スクリプト記述
- 科学技術計算用途
- システム管理・自動化タスク
Python
Pythonは、1991年にリリースされた人気の高い汎用スクリプト言語です。シンプルな文法と豊富なライブラリ、高い生産性が特徴です。データ解析やWebアプリ開発、AIなど幅広い分野で使われています。
基本文法
# 変数とデータ型
x = 10 # 数値型
y = 3.14 # 浮動小数点数型
s = "Python" # 文字列型
list1 = [1, 2, 3] # リスト
dict1 = {"x": 10, "y": 20} # 辞書(dict)型
# 制御文
if x > 0:
print("x is positive")
elif x < 0:
print("x is negative")
else:
print("x is zero")
# 関数定義
def my_function(arg1, arg2):
"""関数のドキュメンテーション
:param arg1: 最初の引数
:param arg2: 2番目の引数
:return: arg1 と arg2 の和
"""
return arg1 + arg2
# クラス定義
class MyClass:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hello, I am {self.name}")
# インスタンス化
obj = MyClass("Python")
obj.say_hello()
特徴
- 簡潔で読みやすいコード
- 強力なオブジェクト指向のサポート
- 豊富な標準ライブラリと外部ライブラリのサポート
- データ解析やWeb開発、AI/MLなど幅広い用途
主な利用シーン
- Webアプリケーション開発(Django、Flask)
- データ解析/科学技術計算
- 自動化スクリプト
- AI/機械学習システム
- システム管理/運用
以上、4つのスクリプト言語の主な仕様と特徴、利用シーンについて解説しました。それぞれ長所と用途が異なるので、プロジェクトの要件に合わせて適切な言語を選ぶことが重要です。Perlは正規表現処理が得意、RubyはWebアプリやメタプログラミングに向いています。PythonやAwkはより汎用的に使えるでしょう。
コメント