「1bai」の版間の差分

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動
(Batch Update)
 
(同じ利用者による、間の1版が非表示)
(相違点なし)

2021年11月23日 (火) 16:29時点における最新版

名前

1bai : 前0を取り除く

書式

使い方とオプション

Usage

1bai [-r] f1 f2 .. file
1bai -d[r] string

Option

[-r] f1 f2 .. file
-d[r] string

説明

指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します)

例(その1)

$ cat data
0000000 浜地______ 50 F 91 59 20 76 54
0000001 鈴田______ 50 F 46 39 8  5  21
0000003 杉山______ 26 F 30 50 71 36 30
0000004 白土______ 40 M 58 71 20 10 6
0000005 崎村______ 20 M 82 79 16 21 80
0000007 梶川______ 42 F 50 2  33 15 62

$ 1bai 1 data > data2
$ cat data2   <- 1フィールド目の頭 "0" を取り去ります。
0 浜地______ 50 F 91 59 20 76 54
1 鈴田______ 50 F 46 39 8 5 21
3 杉山______ 26 F 30 50 71 36 30
4 白土______ 40 M 58 71 20 10 6
5 崎村______ 20 M 82 79 16 21 80
7 梶川______ 42 F 50 2 33 15 62

例(その2)

-r (reverse) オプションをつけると -1 倍します。

$ cat file
a 1 2 3 4 5
b 1 2 3 4 5
$ 1bai -r 2 file
a -1 2 3 4 5
b -1 2 3 4 5
$ 1bai -r 2/4 file
a -1 -2 -3 4 5
b -1 -2 -3 4 5
$ 1bai -r 2 NF-1/NF file
a -1 2 3 -4 -5
b -1 2 3 -4 -5

例(その3)

up3 と sm2 を組み合わせて同じキーをもつレコードの引き算を行います。

$ cat data
a 5
b 2
$ cat data2
a 2
b 1
$ 1bai -r 2 data2 | up3 key=1 data | sm2 1 1 2 2
a 3
b 1

例(その4)

-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。

$ 1bai -d 0123
123
$ 1bai -d 0123.400
123.4
$ 1bai -d 0123.000
123
$ 1bai -d 0
0
$ 1bai -d -000123.400
-123.4
$ 1bai -d +000123.400
123.4
$ 1bai -dr 0123
-123

例(その5)

前0をとることにより、シェルや awk の printf 文における8進数への自動置換を無効にします。

$ num=010   <- 8進数と解釈されてしまう
$ printf '%04d\n' $num
0008
$ printf '%04d\n' $(1bai -d $num)
0010

例(その6)

固定長テキストから変換されたデータは、符号や前0後0がついたものが多く、1bai コマンドが役立ちます。

$ cat file
a 000123.000 000345.000
b 000098.450 000100.000
$ 1bai 2 3 file
a 123 345
b 98.45 100

備考

命名の由来

対象の数字の文字列に1倍を掛けることにより0を取り除くため、1bai と命名されています。

Version and Edition

Version : Thu Jan 14 18:25:02 JST 2021

Edition : 1


© 2021 Universal Shell Programming Laboratory site