以下の形式のファイルが複数ありますRubyは文字列の後にカンマを削除します
例:ファイル: - クラスの\ 234ヘクタール
id = class\234ha, class\poi23, class\opiuj, cap\7y6t5
dept = sub\6985de, ret\oiu87, class\234ha
cko = cyr\hui87
SAMPLE.TXT私は、文字列を見つけることだし、複数のfiles.Likeからそれを削除する、文字列を検索し、削除します。
私のコードは正常に動作しており、目的の文字列がすべて削除されていますが、目的の文字列またはマークされた文字列が削除された後に、行末に末尾にカンマがあります。
例:文字列を除去した後にsample.txt - 私は最後のカンマを削除したい\ 234ヘクタール
id = class\poi23, class\opiuj, cap\7y6t5
dept = sub\6985de, ret\oiu87,
cko = cyr\hui87
クラスは、のみのRETの\ oiu87、後.ITは、複数のファイルで同じでなければなりません。コンマの後に改行文字やスペースがあるかどうかはわかりません。どうすればそれを動作させることができますか?前もって感謝します。
コード
pool = ''
svn_files = Dir.glob("E:\work'*-access.txt")
value=File.open('E:\nando\list.txt').read
value.each_line do |line|
line.chomp!
print "VALUE: #{line}\n"
svn_files.each do |file_name|
text = File.read(file_name)
replace = text.gsub(/#{Regexp.escape(line)}\,\s/, '').gsub(/#{Regexp.escape(line)}/, '')
unless text == replace
text.each_line do |li|
if li.match(/#{Regexp.escape(line)}/) then
#puts "Its matching"
pool = li.split(" ")[0]
end
end
File.open('E:\Removed_users.txt', 'a') { |log|
log.puts "Removed from: #{file_name}"
log.puts "Removed user : #{line}"
log.puts "Removed from row :#{pool}"
log.puts "*" * 50
}
File.open(file_name, "w") { |file| file.puts replace }
end
end
end
あなたが提案したとおりに私は以前に試しましたが、うまくいきませんでした。私は今、質問全体に私のコード全体を入れました。私の質問を調べるのに大いに感謝しています。 – dev
私はコードを修正しました。正規表現に*を含めるようにあなたの提案が鍵です。たくさんありがとうございます。申し訳ありませんが私はdidntとして十分な評判 – dev