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)
とかいろいろやってみてもうまくいきません。もともと無理なのかなぁ。。。
_ 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段階昇進
死んでしまってから昇進してもねぇ。。。と思うのですが。