8.4 UNIX互換コマンド

JP1/Advanced ShellではWindowsおよびUNIXで共通のコマンドが使用できます。また,ジョブ定義スクリプトファイルにも使用できます。共通に使用できるUNIX互換コマンドを次の表に示します。

表8-2 UNIX互換コマンド

コマンド名機能概要コマンドの格納場所
awkテキストの加工やパターン処理をします。【Windowsの実行環境の場合】
インストール先フォルダ¥JP1ASE¥cmd
【Windowsの開発環境の場合】
インストール先フォルダ¥JP1ASD¥cmd
【UNIXの場合】
/opt/jp1as/cmd
catファイルの内容を標準出力に出力します。
cmpバイナリファイルの内容を比較します。
cpファイルまたはディレクトリをコピーします。
cut各行の選択範囲を標準出力に表示します。
dateシステムの日付と時刻を表示します。設定はできません。
diff2つのファイルを比較します。
expr式を評価します。
findディレクトリ内のファイルを検索します。
grepファイル内の文字を検索します。
headファイルの最初の部分を表示します。
hostnameホスト名を表示します。設定はできません。
lsファイルまたはディレクトリの内容を表示します。
mkdirディレクトリを作成します。
mvファイルまたはディレクトリを移動します。ファイル名またはディレクトリ名も変更できます。
rmファイルまたはディレクトリを削除します。
rmdir空のディレクトリを削除します。
sedテキスト中の文字列を置換します。
sleep指定された時間だけ停止します。
sortテキストファイルをソートします。
splitファイルを分割します。
tailファイルの最後の部分を表示します。
unameOSまたはハードウェアの情報を表示します。
uniqソートされたファイルから重複した行を削除します。
wcファイルのバイト,行,文字および単語をカウントします。

UNIX互換コマンドには,ファイルシステムなどOS差異の大きい制御に関して制限事項があります。また,Windows限定でオーナーやグループ,アクセス権限およびシンボリックリンクなどに制限事項があります。

UNIX互換コマンドの制限事項について次の表に示します。

表8-3 UNIX互換コマンドの制限事項

コマンド名制限事項
共通
  • Windowsの場合,UNIX互換コマンドをコマンドプロンプトから実行するとき,ワイルドカードは展開されません。ジョブ定義スクリプトファイルに記述した場合は展開されます。
  • 出力されるメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。
  • Windowsの場合,コマンドプロンプトからコマンドを実行するときは,ダブルクォーテーションを使用する必要があります。
  • Windowsの場合,ファイルに関して次に示す制限があります。
    ・ファイル名は最大246バイトです。
    ・ファイル名に予約デバイス名(CON,AUX,NULなど)は使用しないでください。
    ・ファイル名にNTFSのストリームは使用しないでください。
    ・ハードリンク,シンボリックリンクおよびジャンクションは使用しないでください。
  • コマンドで生成するパス名およびジョブ定義スクリプトファイルに記述したファイルには,「パス変換機能」は無効です。
  • プログラムを実行する機能(awkコマンドのsystem関数およびfindコマンドの-execプライマリ,-okプライマリなど)でGUIを操作するアプリケーションを実行した場合,バッチジョブ実行時に処理が停止することがあります。また,adshexecコマンドを実行すると,新たにジョブが生成されます。
awk
  • Windowsの場合,system関数で実行するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても,ワイルドカードは展開されません。
  • Windowsの場合,getline関数,print関数およびprintf関数でパイプによって接続するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても,ワイルドカードは展開されません。
cat制限事項はありません。
cmp制限事項はありません。
cp
  • Windowsの場合,-Hオプション,-Lオプションまたは-Pオプションを指定して,引数にシンボリックリンクを設定したり,ディレクトリ中にシンボリックリンクがあったりしても,シンボリックリンクをサポートしていないため,リンク先を表示できません。また,-rと-Rオプションは同じ動作になります。
  • Windowsの場合,-pオプションで保持されるのはコピー元ファイルの更新日時およびファイルアクセス日時だけとなります。ディレクトリの情報は保持しません。
cut制限事項はありません。
date-aオプション(時刻設定)は使用できません。
diff制限事項はありません。
expr制限事項はありません。
find制限事項はありません。
grepWindowsの場合,シンボリックリンクのリンク先を表示できません。
head制限事項はありません。
hostname制限事項はありません。
ls
  • Windowsの場合,シンボリックリンクのリンク先を表示できません。
  • Windowsの場合,-lオプションでグループ,リンク数またはファイルのオーナー以外のアクセス権を表示できません。
  • Windowsの場合,TZ環境変数は表示に影響しません。「日付と時刻のプロパティ」で設定したタイムゾーンが使用されます。
mkdirWindowsの場合,-mオプションは無視されるため,モード設定はできません。
mv
  • Windowsの場合,オーバライド時にオーナーのアクセス権以外は表示できません。
  • Windowsの場合,シンボリックリンクのリンク先を表示できません。
  • Windowsの場合,cpコマンド相当の処理をするケースで,オーナーの変更をサポートしません。オーナー/グループ/suid/モードは保持されません。
rm
  • Windowsの場合,シンボリックリンクのリンク先を表示できません。
  • Windowsの場合,オーバライド時にオーナーのアクセス権以外は表示できません。
rmdir制限事項はありません。
sed制限事項はありません。
sleep制限事項はありません。
sort制限事項はありません。
split制限事項はありません。
tail制限事項はありません。
uname制限事項はありません。
uniq制限事項はありません。
wc制限事項はありません。

以降で説明する各UNIX互換コマンドの使用例は,一部を除いてWindowsで実行した場合の例を示しています。コマンドがインストールされているディレクトリへのパスが,環境変数ADSH_OSCMD_DIRに格納されていると仮定しています。

正規表現
基本の正規表現および拡張された正規表現の2つを使用できます。基本の正規表現が使用できるコマンドを次に示します。
  • exprコマンド
  • grepコマンド(-Gオプションを指定した場合)
  • sedコマンド(-Eオプションを指定しない場合)
拡張された正規表現が使用できるコマンドを次に示します。
  • awkコマンド
  • grepコマンド(-Eオプションを指定した場合)
  • sedコマンド(-Eオプションを指定した場合)
また,正規表現にはメタキャラクタを使用できます。使用できるメタキャラクタを次の表に示します。

表8-4 正規表現で使用できるメタキャラクタの違い

メタキャラクタ意味基本の正規表現拡張された正規表現
*0回以上の繰り返し
¥+1回以上の繰り返し×
+1回以上の繰り返し×
.1文字
¥?直前にある正規表現×
?直前にある正規表現×
^行頭
$末尾
¥|選択×
|選択×
[char-list]範囲指定
¥(regexp¥)一まとめ×
(regexp)一まとめ×
¥{n,m¥}n回以上m回以下の繰り返し×
{n,m}n回以上m回以下の繰り返し×
¥{n¥}n回×
{n}n回×
¥{n,¥}n回以上×
{n,}n回以上×
(凡例)
○:使用できます。
×:使用できません。

<この節の構成>
awkコマンド(テキストの加工やパターン処理をする)
catコマンド(ファイルの内容を標準出力に出力する)
cmpコマンド(バイナリファイルの内容を比較する)
cpコマンド(ファイルまたはディレクトリをコピーする)
cutコマンド(各行の選択範囲を標準出力に表示する)
dateコマンド(システムの日付と時刻を表示する)
diffコマンド(2つのファイルや標準入力を比較する)
exprコマンド(式を評価する)
findコマンド(ディレクトリ内のファイルを検索する)
grepコマンド(ファイル内の文字を検索する)
headコマンド(ファイルの最初の部分を表示する)
hostnameコマンド(ホスト名を表示する)
lsコマンド(ファイルまたはディレクトリの内容を表示する)
mkdirコマンド(ディレクトリを作成する)
mvコマンド(ファイルまたはディレクトリを移動する)
rmコマンド(ファイルまたはディレクトリを削除する)
rmdirコマンド(空のディレクトリを削除する)
sedコマンド(テキスト中の文字列を置換する)
sleepコマンド(指定された時間だけ停止する)
sortコマンド(テキストファイルをソートする)
splitコマンド(ファイルを分割する)
tailコマンド(ファイルの最後の部分を表示する)
unameコマンド(OSまたはハードウェアの情報を表示する)
uniqコマンド(ソートされたファイルから重複した行を削除する)
wcコマンド(ファイルのバイト,行,文字および単語をカウントする)