「1bai」の版間の差分

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動
(Batch Update)
 
 
(同じ利用者による、間の6版が非表示)
1行目: 1行目:
 
== 名前 ==
 
== 名前 ==
  
<pre>1bai : 前0を取り除く</pre>
+
1bai : 前0を取り除く
 +
 
 
== 書式 ==
 
== 書式 ==
  
18行目: 19行目:
 
指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します)
 
指定したファイルの指定フィールドや指定した文字列の先頭の0を取り除きます。 (小数点以下の後0も削除します)
  
=== 例その1 ===
+
=== 例(その1) ===
  
 
<pre>$ cat data
 
<pre>$ cat data
36行目: 37行目:
 
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行目: 53行目:
 
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行目: 66行目:
 
a 3
 
a 3
 
b 1</pre>
 
b 1</pre>
=== 例その4 ===
+
=== 例(その4) ===
  
 
-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。
 
-d オプションはダイレクトモードです。引数に直接編集したい文字列を指定します。
83行目: 84行目:
 
$ 1bai -dr 0123
 
$ 1bai -dr 0123
 
-123</pre>
 
-123</pre>
=== 例その5 ===
+
=== 例(その5) ===
  
 
前0をとることにより、シェルや awk の printf 文における8進数への自動置換を無効にします。
 
前0をとることにより、シェルや awk の printf 文における8進数への自動置換を無効にします。
92行目: 93行目:
 
$ printf '%04d\n' $(1bai -d $num)
 
$ printf '%04d\n' $(1bai -d $num)
 
0010</pre>
 
0010</pre>
=== 例その6 ===
+
=== 例(その6) ===
  
 
固定長テキストから変換されたデータは、符号や前0後0がついたものが多く、1bai コマンドが役立ちます。
 
固定長テキストから変換されたデータは、符号や前0後0がついたものが多く、1bai コマンドが役立ちます。
106行目: 107行目:
 
命名の由来
 
命名の由来
  
対象の数字の文字列に1倍を掛けることにより0を取り除くため、1bai と命名されています。
+
対象の数字の文字列に1倍を掛けることにより0を取り除くため、1bai と命名されています。
  
 
== Version and Edition ==
 
== Version and Edition ==
118行目: 119行目:
  
 
© 2021 Universal Shell Programming Laboratory [https://www.usp-lab.com/ site]
 
© 2021 Universal Shell Programming Laboratory [https://www.usp-lab.com/ site]
 
  
  
 
[[Category:man]]
 
[[Category:man]]

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