1bai
ナビゲーションに移動
検索に移動
名前
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