これを行うには、スクリプトが必要になります。私はそれを行うために簡単なRubyスクリプトを作成しました。サンプルテキストで使用し、出力を取得しました。Rubyをダウンロードし、これをそのテキストのディレクトリ内のファイルに貼り付けて、そのverses.txt
行をファイル名に置き換えます。次に、次のようにコマンドラインから実行します。ruby ./script.rb
d = File.read('./verses.txt')
c = d[0..d.length]
c.scan(/(verses\s+\d+-\d+)/) do |n|
n.each do |a|
a.scan(/(\d+-\d+)/) do |nums|
z = nums.to_s.split(/-/)
st=''
in1 = z[0].gsub(/\["/, '').to_i
in2 = z[1].chomp("\"]").to_i
(in1..in2).each do |index|
st += "<a name=\"#{index}\"></a>"
end
b = st + a;
d.gsub!(a, b)
end
end
end
puts d
f = File.new('verses2.txt', "w")
f.write(d)
リクエストに応じて、開いているファイルを上書きし、ディレクトリ内のすべてのファイルで実行する変更を次に示します。簡単にするために、ディレクトリエントリは行いません。そのため、スクリプトをすべてのファイルのディレクトリに配置して実行します。ここに行きます:
Dir.entries('.').each do |entry|
entry.scan(/.*.html/) do
|fn|
d = File.read('./' + fn.to_s)
c = d[0..d.length]
c.scan(/(verses\s+\d+-\d+)/) do |n|
n.each do |a|
a.scan(/(\d+-\d+)/) do |nums|
z = nums.to_s.split(/-/)
st=''
in1 = z[0].gsub(/\["/, '').to_i
in2 = z[1].chomp("\"]").to_i
(in1..in2).each do |index|
st += "<a name=\"#{index}\"></a>"
end
b = st + a;
d.gsub!(a, b)
end
end
end
puts d
f = File.new('./' + fn.to_s, "w")
f.write(d)
end
end
アラビア語のエンコーディングを行う方法について考えます。これはすべてのテキストファイルで実行されます。拡張子が異なるか、名前が似ている場合は、お知らせください。スクリプトを更新します。
これは完全に機能するはずです。テストしただけです。問題がある場合はお知らせください。