cktag_cmp <概要> cktag_cmp : tag 形式データの値の大小関係をチェックする <書式> Usage : cktag_cmp <argument> <tag_file> Option : --through <string> --ngthrough +ng<N> Version : Thu Sep 12 09:40:58 JST 2013 <説明> <argument> の記述に従って、<tag_file>のデータの、 タグ同士やタグと値の大小関係をチェックします。 エラーがあった場合は、標準エラー出力に行番号とタグ名と タグの値を出力します。エラーの無い行は標準出力に出力 されます。エラーがある場合はコマンドはエラー終了します。 <argument> は、"左辺 記号 右辺" と記述します。 左辺と右辺には、タグ名や値を指定します。 記号については、次の8種類が使えます。 -EQ -eq <-- = (equal) -NE -ne <-- != (not equal) -GE -ge <-- >= (greater or equal) -GT -lt <-- > (greater) -LE -le <-- <= (less or equal) -LT -lt <-- < (less) -BE -be <-- ( between ) -BT -bt <-- ( inbetween ) <オプション> --through <string> <tag_file> の左辺あるいは、右辺のデータが<string>の場合は、 チェックを実施しません。 <string>のデフォルトは、"_" となります。 --ngthough エラーがあっても正常終了します。 +ng<N> エラー情報をファイルディスクリプタN番にリダイレクトします。 <例> [usp1 usp@ ~]$ keta tagdata tagA tagB tagC 200 300 _ 500 300 700 300 -10 0 (タグ名とタグ名の比較) [usp1 usp@ ~]$ cktag_cmp "tagA -le tagB" tagdata 2> error > ok [usp1 usp@ ~]$ echo $? <-- error がある場合はエラー終了する 1 [usp1 usp@ ~]$ cat error 1 tagA 200 tagB 300 2 tagA 500 tagB 700 [usp1 usp@ ~]$ cat ok tagA tagB tagC 300 -10 0 (タグ名と数値の比較) [usp1 usp@ ~]$ cktag_cmp "tagA -gt 300" tagdata 2> error > ok [usp1 usp@ ~]$ cat error 1 tagA 200 _ 300 [usp1 usp@ ~]$ cat ok tagA tagB tagC 500 300 700 300 -10 0 ("_" の場合はチェックしない) [usp1 usp@ ~]$ cktag_cmp "tagC -ne 0" tagdata 2> error > ok [usp1 usp@ ~]$ cat error 2 tagC 700 _ 0 [usp1 usp@ ~]$ cat ok tagA tagB tagC 200 300 _ 300 -10 0 (BT の使用方法) [usp1 usp@ ~]$ check_cmp_tag "tagA -bt tagB tagC" tagdata 2> error > ok [usp1 usp@ ~]$ cat error 3 tagA 300 tagB -10 tagC 0 [usp1 usp@ ~]$ cat ok tagA tagB tagC 200 300 _ 500 300 700 (--ngthroughを使うとエラーがあっても正常終了する) (+ng3 でファイルディスクリププタ3番にエラーが出力される) [usp1 usp@ ~]$ cktag_cmp --ngthrough +ng3 "tagC -ne 0" tagdata 3> error > ok [usp1 usp@ ~]$ echo $? 0