「1bai」の版間の差分
ナビゲーションに移動
検索に移動
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
||
18行目: | 18行目: | ||
指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します) | 指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します) | ||
− | === | + | === 例(その1) === |
<pre>$ cat data | <pre>$ cat data | ||
36行目: | 36行目: | ||
5 崎村______ 20 M 82 79 16 21 80 | 5 崎村______ 20 M 82 79 16 21 80 | ||
7 梶川______ 42 F 50 2 33 15 62</pre> | 7 梶川______ 42 F 50 2 33 15 62</pre> | ||
− | === | + | === 例(その2) === |
-r (reverse) オプションをつけると -1 倍します。 | -r (reverse) オプションをつけると -1 倍します。 | ||
52行目: | 52行目: | ||
a -1 2 3 -4 -5 | a -1 2 3 -4 -5 | ||
b -1 2 3 -4 -5</pre> | b -1 2 3 -4 -5</pre> | ||
− | === | + | === 例(その3) === |
up3 と sm2 を組み合わせて同じキーをもつレコードの引き算を行います。 | up3 と sm2 を組み合わせて同じキーをもつレコードの引き算を行います。 | ||
65行目: | 65行目: | ||
a 3 | a 3 | ||
b 1</pre> | b 1</pre> | ||
− | === | + | === 例(その4) === |
-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。 | -d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。 | ||
83行目: | 83行目: | ||
$ 1bai -dr 0123 | $ 1bai -dr 0123 | ||
-123</pre> | -123</pre> | ||
− | === | + | === 例(その5) === |
前0をとることにより、シェルや awk の printf 文における8進数への自動置換を無効にします。 | 前0をとることにより、シェルや awk の printf 文における8進数への自動置換を無効にします。 | ||
92行目: | 92行目: | ||
$ printf '%04d\n' $(1bai -d $num) | $ printf '%04d\n' $(1bai -d $num) | ||
0010</pre> | 0010</pre> | ||
− | === | + | === 例(その6) === |
固定長テキストから変換されたデータは、符号や前0後0がついたものが多く、1bai コマンドが役立ちます。 | 固定長テキストから変換されたデータは、符号や前0後0がついたものが多く、1bai コマンドが役立ちます。 |
2021年3月29日 (月) 16:10時点における版
名前
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