awkium: an awk interpreter


Top - 使用方法 - 機能概要 - ライブラリ - awkiumファイルシステム - awkium shell - awkium sed - bcss - Javadoc - ダウンロード

awkiumにはBourne Shell互換のシェルコマンドを実行する機能があります。
(注) 現時点ではOSネイティブのコマンドは実行できません。


シェルの文法

文法はBourne Shellのものに準じます。
$ <コマンド名> [<引数>] ...
以下の制御構造が使用できます。
if <コマンド1>
then
  <コマンドブロック1>
[ elif <コマンド2>
then
  <コマンドブロック2>
[ ...
[ else
  <コマンドブロックn>
fi]]]
<コマンド1>の終了コードが0のとき<コマンドブロック1>を実行します。 そうでないときは、 <コマンド2>の終了コードが0のとき<コマンドブロック2>を実行します。 ifとelifのコマンドの終了コードが最後まで0にならないときは、 <コマンドブロック2>を実行します。

for <変数> in <値> ...
do
  <コマンドブロック>
done
与えられた<値>それぞれについて<変数>に代入し、 <コマンドブロック>を実行します。

case <変数> in
<パターン1>) <コマンドブロック1> ;;
[ <パターン2>) <コマンドブロック2> ;; 
[ ...
esac]]
<変数>が<パターン>にマッチするとき <コマンドブロック>を実行します。 パターンにはUNIX式のワイルドカードのほかに|で区切り、 選択を指定することができます。

while <コマンド>
do
  <コマンドブロック>
done
<コマンド>が0のとき<コマンドブロック>を実行します。

until <コマンド>
do
  <コマンドブロック>
done
<コマンド>が0でないとき<コマンドブロック>を実行します。

<コマンド1> && <コマンド2>
<コマンド1>が0のとき<コマンド2>を実行します。

<コマンド1> || <コマンド2>
<コマンド1>が0でないとき<コマンド2>を実行します。

<コマンド1> | <コマンド2>
<コマンド1>の標準出力を<コマンド2>の標準入力とします。(パイプ)

<コマンド> < <ファイル名>
標準入力をファイルに切り替えます。(リダイレクト)

<コマンド> << <文字列>
<テキスト>
<文字列>
標準入力を<テキスト>に切り替えます。(ヒアドキュメント)

<コマンド> > <ファイル名>
標準出力をファイルに切り替えます。(リダイレクト) ファイルの中身は消去されます。

<コマンド> >> <ファイル名>
標準出力をファイルに切り替えます。(リダイレクト) ファイルは追記されます。

;
コマンドの区切りを指定します。改行と同じ役割をします。

! <コマンド>
<コマンド>を実行し、終了コードが0でないときは終了コード0を、 0のときは終了コード1を得ます。

変数名=値
シェル変数を定義します。

break
ループから抜け出します。

continue
次のループを実行します。

return
関数を終了します。

exit [exit-code]
シェルを終了します。

function <関数名> {
  <コマンドブロック>
}
関数を定義します。 関数の呼び出し方法はコマンドと同じです。

<関数名> () {
  <コマンドブロック>
}
関数を定義します。

eval [引数 ...]
引数を再パースして実行します。


コマンド

. [スクリプト]
スクリプトファイルを読み込みます。

source [スクリプト]
スクリプトファイルを読み込みます。

:
終了コード0を返します。

[ [条件式] ]
条件式を評価し、終了コードを返します。
条件式は以下のものが使用できます。
優先順位は -o < -a < !です。
-a ファイル ファイルが存在するとき0を返します
-d ファイル ファイルがディレクトリのとき0を返します
-e ファイル ファイルが存在するとき0を返します
-f ファイル ファイルが通常ファイルのとき0を返します
-r ファイル ファイルが読み込み可能のとき0を返します
-s ファイル ファイルが存在し、サイズが0でないとき0を返します
-w ファイル ファイルが存在し、書き込み可能のとき0を返します
-x ファイル ファイルが存在し、実行可能のとき0を返します
-z 文字列 文字列の長さが0のとき0を返します
-n 文字列 文字列の長さが0でないとき0を返します
ファイル1 -nt ファイル2 ファイル1がファイル2より新しいとき0を返します
ファイル1 -ot ファイル2 ファイル1がファイル2より古いとき0を返します
文字列1 = 文字列2 文字列1と文字列2が等しいとき0を返します
文字列1 != 文字列2 文字列1と文字列2が等しくないとき0を返します
文字列1 < 文字列2 文字列1と文字列2より辞書順で小さいとき0を返します
文字列1 <= 文字列2 文字列1と文字列2より辞書順で大きくないとき0を返します
文字列1 > 文字列2 文字列1と文字列2より辞書順で大きいとき0を返します
文字列1 >= 文字列2 文字列1と文字列2より辞書順で小さくないとき0を返します
文字列1 -eq 文字列2 文字列1と文字列2が数値として等しいとき0を返します
文字列1 -ne 文字列2 文字列1と文字列2が数値として等しくないとき0を返します
文字列1 -lt 文字列2 文字列1と文字列2より数値として小さいとき0を返します
文字列1 -le 文字列2 文字列1と文字列2より数値として大きくないとき0を返します
文字列1 -gt 文字列2 文字列1と文字列2より数値として大きいとき0を返します
文字列1 -ge 文字列2 文字列1と文字列2より数値として小さくないとき0を返します
式1 -o 式2 式1と式2のどちらかが0のとき0を得ます
式1 -a 式2 式1と式2の両方が0のとき0を得ます
! 式1 式1が0のとき0以外、0以外のとき0を得ます
( 式 ) 式を優先して実行します

awk [options] [ファイル ...]
awkiumを起動します。

basename パス名
パス名のファイル部分を取り出します。

builtin コマンド
コマンドを優先して実行します。

cat [options] ファイル ...
ファイルを表示します。
-b, --number-nonblank 空白行以外に行番号を表示する
-e -vEと同じ
-n, --number すべての行に行番号を表示する
-s, --squeeze-blank 連続した空行を1行にする
-t -vTと同じ
-v, --show-nonprinting タブを~、8ビット文字をM-に置き換える
-A, --show-all -vETと同じ
-E, --show-ends 行の最後に$を表示する
-T, --show-tabs タブを^Iに置き換える

cd ディレクトリ
カレントディレクトリを移動する

command コマンド
コマンドを優先して実行する

cp [options] ファイル ...
ファイルをコピーします。
-f ファイルが存在しても強制的にコピーする
-H 予約
-i 対話的にコピーする
-L 予約
-p 予約
-r, -R ファイルを再帰的にコピーする

cut [options] ファイル ...
行の一部分を切り出します。
-s, --only-delimited 行区切りのない行を無視する
-d delim, --delimiter=delim 区切り文字を指定する
-b start[-end], --bytes=start[-end] 指定したバイトを表示する
-c start[-end], --characters=start[-end] 指定した文字を表示する(マルチバイト対応)。
-f start[-end], --fields=start[-end] 指定したフィールドを表示する

d [options] file ...
ファイルの情報を表示します(ls, Windowsのdirに相当)。
-F ファイル名の末尾にディレクトリは/を表示する
-R 再帰的にファイルを参照する
-a 隠しファイルを表示する
-d ディレクトリのとき中身を参照しない
-q 予約
-r ソート順を逆にする
-1 1行に表示する
-t 更新時間でソートする

date [options] [+format] [date]
日付を表示します。
-d date 指定された日付を表示する。 自然な記法や和暦もサポートしている
+format 表示フォーマットをstrftime(3)形式で指定する
date MMDDHHmm[[CC]YY].ss形式で日付を指定する

dirname パス名
パスからディレクトリ名を取得します。

echo 文字列
文字列を表示します。
-n 最後に改行をつけない
-e エスケープシーケンスを認識する
-E エスケープシーケンスを認識しない

export 変数[=値] ...
変数を環境変数としてエクスポートします。
OSの環境変数は変更されません。

false
0以外の終了コードを得ます。

getopts オプション
オプションを解析します。

grep [options] パターン [ファイル ...]
正規表現によりファイルを検索します。
-A number マッチした行よりnumber行後を表示する
-B number マッチした行よりnumber行前を表示する
-C number マッチした行よりnumber行前後を表示する
-E 拡張正規表現を使用する(今はJavaの正規表現を使用)
-F 固定パターンを使用
-G 基本正規表現を使用
-J Java標準の正規表現を使用
-b 各行の前にバイト単位のオフセットを表示
-n 行番号を表示
-c マッチした行数のみを表示
-e pattern パターンを指定する
-f file パターンをファイルから読み込む
-h ファイル名の表示を抑える
-H ファイル名を表示する
-i 大文字小文字を無視する
-l マッチしたファイル名のみを表示する
-q サイレントモード
-s エラー表示を抑える
-v マッチしないものを対象とする
-w 単語全体にマッチさせる
-x 行全体にマッチさせる

head [options] [ファイル ...]
ファイルの先頭を表示する
-q, --quiet ファイル名を表示しない
-v, --verbose ファイル名を表示する
-c num, --bytes num 先頭のnumバイトを表示する (numにはk, Mなどを指定可能)
-C num, --characters num 先頭のnum文字を表示する (numにはk, Mなどを指定可能)
-n num, --lines=num 先頭のnum行を表示する (numにはk, Mなどを指定可能)
-num 先頭のnum行を表示する (numにはk, Mなどを指定可能)

local [varname=value ...]
ローカル変数を定義します

mkdir [options] dir
ディレクトリを作成します。
-p 親ディレクトリも生成する

msgbox [options] 文字
ウィンドウのメッセージボックスを表示します。 終了コード0のときOK、1のときNO、2のときCancelをあらわします。
-c OKとキャンセルのメッセージボックスを表示する
-y YesとNoのメッセージボックスを表示する
-Y YesとNoとキャンセルのメッセージボックスを表示する
-q アイコンを疑問符にする
-i アイコンを情報にする
-w アイコンを警告にする
-e アイコンをエラーにする

mv [options] [ファイル ...]
ファイルを移動します。
-b バックアップを取得する
-f 強制的に移動する
-i 対話的に移動する
-u, -v 予約

pwd
カレントディレクトリを表示します。

read [-r] [変数名 ...]
標準入力から1行読み込み、変数に代入します。
-r \をエスケープ文字とみなさない

readonly [変数名 ...]
変数を読み込みのみにします。

rm [options] [ファイル名 ...]
ファイルを削除します。 再帰的に削除はサポートされていません。
-f, --force 強制的にファイルを削除する
-i, --interactive 対話的にファイルを削除する
-v, --verbose 対象のファイル名を表示する

rmdir [options] [ディレクトリ ...]
ディレクトリを削除します。
-p, --parent 親ディレクトリも削除する

sed [options] コマンド [ファイル ...]
ストリームエディタsedを実行します。 使用可能なコマンドはこちらを参照願います。
-n パターンスペースを表示しない
-e コマンド sedコマンドを指定する
-f ファイル ファイルからsedコマンドを読み込む

set [options]
シェルの設定を変更します。
-C, +C, -o noclobber, +o noclobber 上書きのリダイレクトを禁止(許可)する
-f, +f, -o noglob, +o noglob ワイルドカード展開を禁止(許可)する
-n, +n, -o noexec, +o noexec コマンドの実行を禁止(許可)する
-u, +u, -o nounset, +o nounset 変数のアンセットを禁止(許可)する
-v, +v, -o verbose, +o verbose コマンドの表示を有効(無効)にする
-x, +x, -o xtrace, +o xtrace コマンドの追跡を有効(無効)にする

sh [options] [ファイル ...]
サブシェルを実行します。
-C, +C 上書きのリダイレクトを禁止(許可)する
-f, +f ワイルドカード展開を禁止(許可)する
-n, +n コマンドの実行を禁止(許可)する
-u, +u 変数のアンセットを禁止(許可)する
-v, +v コマンドの表示を有効(無効)にする
-x, +x コマンドの追跡を有効(無効)にする
-c command 指定されたコマンドを実行する
-s file 指定したファイルを対話的に実行する

shift num
引数をシフトします。

sleep sec
実行をsec秒間停止します。 m, h, dを指定してそれぞれ分、時間、日を指定できます。

sort [options] [ファイル ...]
ファイルをソートします。
-c ソートされているかをチェックする
-m ソート済みのファイルをマージする
-u 重複した行を表示しない
-t フィールド区切り文字を指定する
-o filename 出力ファイルを指定する
-b 空白を無視する
-d ASCII英数字のみ対象にする
-f 大文字小文字を無視する
-i ASCII文字のみ対称にする
-M 予約
-n 数値でソートする
-r 逆順にソートする
-k field フィールドを指定する

sqlc [options] SQL [引数 ...]
JDBC経由でSQLを実行します。
-v 何件処理されたかを表示する
-d dbms DBMS名を指定する
db2IBM DB2
firebirdFirebird
mssqlMicrosoft SQL Server
mysqlMySQL
oracleOracle
postgresqlPostgreSQL
sqliteSQLite
環境変数DBMSに指定しても同じである
-i JDBC URIを指定する 環境変数DB_URIに指定しても同じである
-u DBユーザを指定する 環境変数DB_USERに指定しても同じである
-p DBパスワードを指定する 環境変数DB_PASSWORDに指定しても同じである

tail [options] [ファイル ...]
ファイルの末尾を表示する
-q, --quiet ファイル名を表示しない
-v, --verbose ファイル名を表示する
-c num, --bytes num 末尾のnumバイトを表示する (numにはk, Mなどを指定可能)
-C num, --characters num 末尾のnum文字を表示する (numにはk, Mなどを指定可能)
-n num, --lines=num 末尾のnum行を表示する (numにはk, Mなどを指定可能)
-num 末尾のnum行を表示する (numにはk, Mなどを指定可能)

tee [options] ファイル
標準出力を標準入力とファイルに分岐します。
-a, --append ファイルに追記する

touch [options] [ファイル名 ...]
ファイルの更新日時を変更します。
-c ファイルがないときファイルの作成をしない
-d date, --date=date 更新日時を指定した日付にする。 自然な記述が可能である
-r file, --reference=file 更新日時をファイルの更新日時にする
-t date 更新日時をMMDDHHmm[[CC]YY].ss形式で指定した日時にする

tr [options] パターン1 パターン2
文字を変換します。
-c パターン1の補文字をとる
-d パターン1の文字を削除する(パターン2は不要)
-s パターン1の文字を1文字にする (-dと同時でなければパターン2は不要)
-t パターン1の長さをパターン2と同じにする

true
終了コード0を返します。

uniq [options] [ファイル ...]
ソート済みのファイルから重複行を取り除きます。
-u, --unique 重複しない行のみ表示する
-d, --repeated 重複行のみ表示する
-f num, --skip-fields=num numフィールドスキップする
-s num, --skip-chars=num num文字スキップする
-w num, --check-field=num num文字だけチェックする

unset [変数名 ...]
変数をアンセットします。

wc [options] [ファイル ...]
行、単語、文字、バイト数をカウントします。
-b, --bytes バイトカウントを表示
-c, --chars 文字カウントを表示
-w, --words 単語カウントを表示
-l, --lines 行カウントを表示

wread [options] 変数
入力ウィンドウのダイアログボックスを表示します。 結果は変数に代入されます。
-q アイコンを疑問符にする
-i アイコンを情報にする
-w アイコンを警告にする
-e アイコンをエラーにする