「calsed」の版間の差分
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
Pt4a editor (トーク | 投稿記録) 細 (Batch Update) |
||
18行目: | 18行目: | ||
== 説明 == | == 説明 == | ||
− | calsedは sed | + | calsedは sed の文字列置換機能の簡易版です。指定した元文字列を指定した文字列に置換します。sedのように、元文字列に正規表現を使うことはできません。ファイルを指定しないか、“-”の時は、標準入力から読み込みます。置換後文字列が“@”の場合、ヌル文字列に置換します。この文字列を変更するのに、-n オプションを指定します。 |
− | |||
− | |||
-s オプションは変換後文字列の文字を半角空白に置換することができます。 | -s オプションは変換後文字列の文字を半角空白に置換することができます。 | ||
26行目: | 24行目: | ||
-e オプションは “-” で始まる文字列を変換する際に指定します。 | -e オプションは “-” で始まる文字列を変換する際に指定します。 | ||
− | === | + | === 例(その1) === |
直接置換文字列を指定します。 | 直接置換文字列を指定します。 | ||
51行目: | 49行目: | ||
<td>usp lab</td> | <td>usp lab</td> | ||
<td>AGE</td></pre> | <td>AGE</td></pre> | ||
− | === | + | === 例(その2) === |
+ | |||
+ | シェル変数にメタキャラクタを指定しても正しく変換します。(空白 * # % / など) | ||
− | + | その時には、“$変数” のように、ダブルクオーテーションが必須です。変換先が “@” のときだけは特別で、ヌル文字列に変換します。 | |
<pre>$ NAME="*" | <pre>$ NAME="*" | ||
63行目: | 63行目: | ||
<td></td> | <td></td> | ||
<td>25</td></pre> | <td>25</td></pre> | ||
− | === | + | === 例(その3) === |
元文字列が “-” で始まるときは -e を指定します。 | 元文字列が “-” で始まるときは -e を指定します。 | ||
71行目: | 71行目: | ||
$ calsed -e -bbb xxx data | $ calsed -e -bbb xxx data | ||
aaa xxx ccc</pre> | aaa xxx ccc</pre> | ||
− | === | + | === 例(その4) === |
− | + | 元文字列と変換後文字列をセットにしたファイルを指定して、置換を行うことができます。このファイルは name 形式であることが必要です。 | |
<pre>before1 after1 | <pre>before1 after1 | ||
before2 after2 | before2 after2 | ||
before3 after3</pre> | before3 after3</pre> | ||
− | + | 元文字列のあと、半角空白を1個はさんで変換後文字列を指定します。変換後文字列はヌル文字列でも半角空白を含む文字列でも構いません。変換後文字列が “@” の時、ヌル文字列に変換されます。この文字列は -n オプションで変更できます。-s オプションで変換後文字列の文字を半角空白に置換することができます。 | |
<pre>$ cat script | <pre>$ cat script |
2021年3月29日 (月) 16:10時点における版
名前
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