我目前正在将一个 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: 拼写