現在、あるSVNサーバーのコンテンツを別のサーバーに移行中です。簡単に言えば、dos2unix
いくつかの行末を変換するために使用しようとしましたが、何も修正せずにリビジョンログのかなりの部分をいじってしまいました。svnadmin
不正な形式のファイルエラーのため、を使用して完全なダンプファイルを作成できません。ファイルは次のように構成されています。
K (# of chars in following line)
svn:author
V (# of chars in following line)
(author)
K ##
svn:date
V ##
(date)
K ##
svn:log
V (# of chars in following lines)
revision
commit
text
END
エラーは、最後の数字に続く番号V
が正しくないことに起因します。これまで私は手動で番号を変更してきました。これには、テキストのコピー、どこかの文字のカウント、番号の変更、保存、そしてsvnadmin dump DIR > dumpfile.dmp
次の文字を見つけるための実行が含まれます。私は一般的には気にしませんが、コマンドの実行にはsvnadmin dump
少し時間がかかり、多くのコマンドを実行することになります。
私の質問はこれです:12行目から「END」の前の行の終わりまでの文字数をカウントし、11行目の数を置き換えるスクリプトを作成する方法はありますか?私はUNIXに比較的慣れておらず、awk、sedなどを調査しましたが、十分なものは見つかりませんでした。それらはかなりユニークなパラメータであると私は理解しているので、役立つものは何でも歓迎です。文字数と文字数が一致しないファイルを一覧表示する方法はありますか?それは私の仕事を大幅にスピードアップするでしょう。
ありがとう。
e:つづり