トップ «前の日記(2003-12-03(水)) 最新 次の日記(2003-12-05(金))» 編集

とた日記


2003-12-04(木) [長年日記]

_ コマンドプロンプトで sed 相当のものは?

サードパーティのコマンドやツールをインストールせずに sed 相当のことをしたいのですがなかなか良い方法を知りません。DOSプロンプト活用相談 [2]

@echo off
if "%1"=="" goto end
set fname=%1
copy %fname% org >nul
type nul >%fname%
for /f "tokens=1* delims=" %%a in ( org ) do (set line=%%a&& call :sub)
 
del org
goto end
 
:sub
:この1行下の acb=xyz に置換前と置換後の文字列を指定する。
set l=%line:abc=xyz%
echo %l%>>%fname%
goto :EOF
 
:end

というサンプルがあるのですがこれだと 固定文字列 "xyz" でしか置換できないのです。

(snip)
set post=hoge
set l=%line:abc=(%post%)%
(snip)

とかいろいろやってみてもうまくいきません。もともと無理なのかなぁ。。。

_ sysutils/portdowngrade

できたての port のようです。最初は自分の目を疑ってしまいました。あとで適当な port で試してみようかなぁ。

_ portupgrade japanese/nkf net/p5-URI net/stone

ja-nkf-2.02                 <  needs updating (port has 2.03)
p5-URI-1.27                 <  needs updating (port has 1.28)
stone-2.2                   <  needs updating (port has 2.2a)

_ DeepFreezer

圧縮形式 yz1 のファイルがあったのでそれを解凍するための DeepFreezer の WebPage を覗いてみました。作者は Software Designで連載を持っていた山崎 敏さんでした。そのヴァージョン 2 の yz2 というのもあってソースコードが公開されています。H12, H13 未踏ソフトウエア創造事業で採択されているようです。FreeBSD でも圧縮・解凍できたら便利だなぁと思い hoge ってみたのですが、独特の書き方をされていて読む気が失せました。。。さらにこんなコメントを見てしまい、眉唾です。SD 誌ではソフトウェア工学について語っていたのになぁ。。。

alpha 5との違いは、

・DeepFreezer2.exe/yz2enc.exe/yz2dec.exe を作った。

・その他、細かい修正(細かくてよく思い出せない^^;)

以上です。

[圧縮形式yz2 - やまざき@BinaryTechnologyより引用]

というのを見てしまうと、説得力がないような。。。yz2 は何でプロジェクト管理されているのかなぁ。ソースコードを見る限り CVS でないことは明らかなのですが。VSS かなぁ。

奥村先生と共著で LHAとZIP―圧縮アルゴリズム×プログラミング入門(山崎 敏/奥村 晴彦)が出ているみたいですが、まずは立ち読みで中身を確認してみようかと思います。

_ portdowngrade を試す

さっき見つけた portdowngradeさっき portupgrade した japanese/nkf で試してみました。

# portdowngrade -s :pserver:anoncvs@anoncvs.jp.freebsd.org:2401/home/ncvs japanese/nkf
 
portdowndgrade 0.1 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!
 
 
Step 1: Checking out port from CVS repository
CVS root directory: :pserver:anoncvs@anoncvs.jp.freebsd.org:2401/home/ncvs
 
Step 2: Reading the port history from the CVS repository
 
Step 3: Analyzing the port history from the CVS repository
 
 
Step 4: Load port version numbers and present results
Keys: <space> : next page                      d : details
            p : previous page
      <enter> : leave presentation and downdgrade if wanted
============================================================================================================
number         date         portversion  comment
    1  2003/12/04 03:00:03  2.03         Upgrade to 2.03.
    2  2003/03/07 06:04:53  2.02         Clear moonlight beckons.
    3  2003/02/03 08:43:32  2.02         Upgrade to 2.02.
    4  2002/10/25 03:59:45  1.92         Don't use .. in MAN?.  Use 'MANLANG="" ja' instead.
    5  2001/11/14 01:58:05  1.92         Add patch to fix a bug that often causes misconversion.
    6  2001/10/28 15:25:08  1.92         Update to 1.92.
    7  2000/04/11 14:15:48  1.71         Update with the new PORT{NAME,VERSION}/PKGNAME{PRE,SUF}FIX variables
    8  2000/03/08 11:19:17  nkf171       Convert the Japanese man page to EUC before installing it.
    9  2000/02/23 05:07:43  nkf171       Ah, previous commit message was wrong, it was upgraded to 1.71
   10  2000/02/23 05:05:47  nkf171       Upgrade to 1.72.
   11  1999/08/31 06:46:01  nkf-1.62     FreeBSD.ORG -> FreeBSD.org
   12  1999/08/25 05:25:57  nkf-1.62     Change Id->FreeBSD.
   13  1998/08/31 17:47:39  nkf-1.62     Remove man page entries from the PLIST and define MAN? in the Makefi
   14  1997/09/14 21:35:26  nkf-1.62     Use ISO639 language abbreviation instead of ISO3166 country abbrevia
   15  1996/12/03 13:08:17  nkf-1.62     mkdir --> ${MKDIR}      cp -->${CP}
   16  1996/11/17 14:14:56  nkf-1.62     Removed unnecessary @* directives.
   17  1996/11/11 10:12:36  nkf-1.62     CATEGORIES+= -> CATEGORIES=
Total lines: 33. Command:

単に Enter を叩くと

Enter version number to change port to (0: exit): 

と出るので、試しに

Enter version number to change port to (0: exit): 3

としてみました。

Step 5: Checking out choosen date of the port from the CVS repository
 
Step 6: Modifying the port
Port: japanese/nkf
at : 2003/02/03 08:43:32
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed siftware! yes or no:

と訊かれるので yes で答えると

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run
 
portsdb -Uu
 
now, to see the changes in the ports database. In any case
 
portupgrade -f nkf
 
will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!

となります。そこで /usr/ports/japanese/nkf/Makefile を調べてみると

(snip)
# $FreeBSD: ports/japanese/nkf/Makefile,v 1.24 2003/02/03 08:43:32 max Exp $
#
 
PORTNAME=       nkf
PORTVERSION=    2.02
CATEGORIES=     japanese
(snip)

となっていて確かに PORTVERSION がさがっています。結局は手動で portupgrade -f しないといけないんですね。

_ 2外交官の遺体帰国 貢献たたえ2段階昇進

死んでしまってから昇進してもねぇ。。。と思うのですが。