Ruby 删除2个文件中以“AUTO_INCREMENT=”开头的字符串
我试图创建一个ruby脚本,加载2.sql文件并删除所有以“AUTO_INCREMENT=”开头的字符串 在我的.sql文件中多次出现这种情况,我只想将它们从这两个文件中删除。Ruby 删除2个文件中以“AUTO_INCREMENT=”开头的字符串,ruby,string,import,Ruby,String,Import,我试图创建一个ruby脚本,加载2.sql文件并删除所有以“AUTO_INCREMENT=”开头的字符串 在我的.sql文件中多次出现这种情况,我只想将它们从这两个文件中删除。 感谢您的帮助或意见,因为我是ruby新手,决定尝试一下。您是否尝试过使用正则表达式来实现此目的?如果要删除整行,只需匹配^AUTO_INCREMENT=.+$并将其替换为空字符串即可。该模式应匹配以自动增量开始的整行 希望这对你有用。你应该阅读更多关于你可以使用的方法的详细信息 以下是如何读取、修改和保存一个文件的内容:
感谢您的帮助或意见,因为我是ruby新手,决定尝试一下。您是否尝试过使用正则表达式来实现此目的?如果要删除整行,只需匹配^AUTO_INCREMENT=.+$并将其替换为空字符串即可。该模式应匹配以自动增量开始的整行 希望这对你有用。你应该阅读更多关于你可以使用的方法的详细信息 以下是如何读取、修改和保存一个文件的内容:
# Opens a file for reading.
file = File.open("file1.txt")
# Reads all the contents into the string 'contents'.
contents = file.read
file.close
# Splits contents into an array of strings, one for each line.
lines = contents.split("\n")
# Delete any lines that start with AUTO_INCREMENT=
lines.reject! { |line| line =~ /^AUTO_INCREMENT=/ }
# Join the lines together into one string again.
new_contents = lines.join("\n")
# Open file for writing.
file = File.open("file1.txt", "w")
# Save new contents.
file.write(new_contents)
file.close
鉴于正确的regexp,鉴于语法和对类似问题的回答,下面的regexp可能不是最正确的,将脚本放在一起相当简单:
file_names = ['file1.sql', 'file2.sql']
file_names.each do |file_name|
text = File.read(file_name)
File.open(file_name, 'wb') do
|file|
file.write(text.gsub(/\s*AUTO_INCREMENT\s*(\=\s*[0-9]+)?/, ""))
end
end