calsed

提供: Personal Tukubai for Academic
2021年6月7日 (月) 08:37時点におけるPt4a editor (トーク | 投稿記録)による版 (Batch Update)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

名前

calsed : 軽いsed

書式

使い方とオプション

Usage

calsed <org> <dst> <file>
calsed -e <org> <dst> <file>
calsed -f <script> <file>

Option

-n <string>
-s <char>

説明

calsedは sed の文字列置換機能の簡易版です。指定した元文字列を指定した文字列に置換します。sedのように、元文字列に正規表現を使うことはできません。ファイルを指定しないか、“-”の時は、標準入力から読み込みます。置換後文字列が“@”の場合、ヌル文字列に置換します。この文字列を変更するのに、-n オプションを指定します。

-s オプションは変換後文字列の文字を半角空白に置換することができます。

-e オプションは “-” で始まる文字列を変換する際に指定します。

例(その1)

直接置換文字列を指定します。

$ cat data
<td>NAME</td>
<td>AGE</td>
$ calsed NAME usp data
<td>usp</td>
<td>AGE</td>
$ calsed NAME usp data | calsed AGE 25 - <-- 連続して使用する場合
<td>usp</td>
<td>25</td>
$ calsed NAME "usp lab" data  <-- 置換後文字列に空白がある場合
<td>usp lab</td>
<td>AGE</td>
$ calsed NAME @ data  <-- 置換後文字列にヌル文字列
<td></td>
<td>AGE</td>
$ calsed -nx NAME @ data  <-- ヌル文字列を変更する
<td>@</td>
<td>AGE</td>
$ calsed -s_ NAME usp_lab data  <-- 空白に変換する文字を指定する
<td>usp lab</td>
<td>AGE</td>

例(その2)

シェル変数にメタキャラクタを指定しても正しく変換します。(空白 * # % / など)

その時には、“$変数” のように、ダブルクオーテーションが必須です。変換先が “@” のときだけは特別で、ヌル文字列に変換します。

$ NAME="*"
$ calsed NAME "$NAME" data
<td>*</td>
<td>25</td>
$ NAME="@"
$ calsed NAME "$NAME" data
<td></td>
<td>25</td>

例(その3)

元文字列が “-” で始まるときは -e を指定します。

$ cat data
aaa -bbb ccc
$ calsed -e -bbb xxx data
aaa xxx ccc

例(その4)

元文字列と変換後文字列をセットにしたファイルを指定して、置換を行うことができます。このファイルは name 形式であることが必要です。

before1 after1
before2 after2
before3 after3

元文字列のあと、半角空白を1個はさんで変換後文字列を指定します。変換後文字列はヌル文字列でも半角空白を含む文字列でも構いません。変換後文字列が “@” の時、ヌル文字列に変換されます。この文字列は -n オプションで変更できます。-s オプションで変換後文字列の文字を半角空白に置換することができます。

$ cat script
NAME usp
AGE 25
$ calsed -f script data
<td>usp</td>
<td>25</td>
$ cat script2
NAME @
AGE
$ calsed -f script2 data
<td></td>
<td></td>
$ cat script3 <- [空白]usp[空白]lab[空白] を指定
NAME  usp lab 
AGE 25
$ calsed -f script3 data <- 空白もそのまま置換できる
<td> usp lab </td>
<td>25</td>
$ cat script4
NAME usp_lab
AGE 25
$ calsed -s_ -f script4 data <- 空白文字に置換する文字を指定
<td>usp lab</td>
<td>25</td>

備考

旧 -d オプション(現 -s オプション)は保証されません。

旧 -i オプション(現 -n オプション)は保証されません。

Version and Edition

Version : Fri Jan 15 09:50:36 JST 2021

Edition : 1


© 2021 Universal Shell Programming Laboratory site