uspTukubaiコマンドに関する様々な資料がここにあります。

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト
動画説明

calsed

<概要>

calsed : 軽いsed

<書式>

Usage   : calsed    <org> <dst> <file>
          calsed -e <org> <dst> <file>
          calsed -f <script> <file>
Options : -n<string>
          -s<c>
Version : Mon Feb 25 21:02:40 JST 2019
Edition : 1

<説明>

calsed は sed の文字列置換機能の簡易版です。指定した元文字列を指定し
た文字列に置換します。sed のように、元文字列に正規表現を使うことはで
きません。ファイル名を指定しないか、"-" の時は、標準入力から読み込み
ます。

置換後文字列が "@" の場合、ヌル文字列に置換します。この文字列を変更
するのに、-n オプションを指定します。

-s オプションは置換後文字列の中で半角空白に変換する文字を指定します。

<例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 オプション)は保証されません。