cond

提供: Personal Tukubai for Academic
2021年8月19日 (木) 19:00時点におけるPt4a editor (トーク | 投稿記録)による版 (Batch Update)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

名前

cond : 式を評価してレコードを抽出する。

書式

使い方とオプション

Usage

cond [-i] [+ng[<fd>]] <expr> <file>

Option

-i
+ng[<fd>]

説明

入力ファイル <file> の各レコードに対し、<expr> が真になる行のみ出力します。<expr> としては、

$フィールド == "文字列"    または    $フィールド == $フィールド
$フィールド != "文字列"    または    $フィールド != $フィールド
$フィールド >  "文字列"    または    $フィールド >  $フィールド
$フィールド >= "文字列"    または    $フィールド >= $フィールド
$フィールド <  "文字列"    または    $フィールド <  $フィールド
$フィールド <= "文字列"    または    $フィールド <= $フィールド
$フィールド eq 定数        または    $フィールド eq $フィールド
$フィールド ne 定数        または    $フィールド ne $フィールド
$フィールド lt 定数        または    $フィールド lt $フィールド
$フィールド le 定数        または    $フィールド le $フィールド
$フィールド gt 定数        または    $フィールド gt $フィールド
$フィールド ge 定数        または    $フィールド ge $フィールド
$フィールド ~  /正規表現/
$フィールド !~ /正規表現/
NF eq 定数    または    NR eq 定数
NF ne 定数    または    NR ne 定数
NF lt 定数    または    NR lt 定数
NF le 定数    または    NR le 定数
NF gt 定数    または    NR gt 定数
NF ge 定数    または    NR ge 定数

があります。$フィールドは <math display="inline">定数、</math>NF、$NF-定数 を指定できます。NF はフィールド数、NR はレコード番号を表します。これらを && (AND)、|| (OR)、! (NOT) で組み合わせることができます。括弧 () も使用できます。

<file> の指定が無いとき、或は “-” を指定した時は、標準入力を読み込みます。

-i オプションは、正規表現マッチにおいて大文字小文字を区別しません。

+ng<fd> オプションを指定すると、<expr> が偽になる行をファイルデスクリプタ <fd> へ出力します。<fd> を省略した場合は標準エラー出力へ出力します。

例(その1)

$ cat file1
111 222 000
110 222 333
111 220 033
110 220 303

$ cond '$1 == "111" && $2 ~ /2$/ || $3 ~ /^[03]0.*$/' file1
111 222 000
110 220 303

$ cond '!($2 <= "221" || $3 !~ /^0.*$/) && $2 ~ /2$/' file1
111 222 000

例(その2)

$ cat file2
usp xxx xxx
Usp yyy yyy
USP zzz zzz

$ cond '$1 ~ /usp/' file2
./cond '$1 ~ /usp/' <<<'usp xxx xxx
Usp yyy yyy
USP zzz zzz'

$ cond -i '$1 ~ /usp/' file2
usp xxx xxx
Usp yyy yyy
USP zzz zzz

例(その3)

$ cond +ng3 '$2 == "yyy"' file2 >ok-data 3>ng-data
$ cat ok-data
Usp yyy yyy
$ cat ng-data
usp xxx xxx
USP zzz zzz

Version and Edition

Version : Thu Sep 17 15:30:13 JST 2020

Edition : 1


© 2021 Universal Shell Programming Laboratory site