「1bai」の版間の差分

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動
(Batch Update)
 
(Batch Update)
18行目: 18行目:
 
指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します)
 
指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します)
  
=== 例その1 ===
+
=== 例(その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 ===
+
=== 例(その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 ===
+
=== 例(その3) ===
  
 
up3 と sm2 を組み合わせて同じキーをもつレコードの引き算を行います。
 
up3 と sm2 を組み合わせて同じキーをもつレコードの引き算を行います。
65行目: 65行目:
 
a 3
 
a 3
 
b 1</pre>
 
b 1</pre>
=== 例その4 ===
+
=== 例(その4) ===
  
 
-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。
 
-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。
83行目: 83行目:
 
$ 1bai -dr 0123
 
$ 1bai -dr 0123
 
-123</pre>
 
-123</pre>
=== 例その5 ===
+
=== 例(その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 ===
+
=== 例(その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