-1

我想编写一个 Ruby 脚本,它会从一个文件中复制特定的代码行并将它们插入到另一个文件中。如果可能的话,我希望结果与我在 file_1 中突出显示一些行,复制它们,然后将光标放在 file_2 的中间并将复制的代码粘贴到(即下面的 file_2 中的代码)相同插入点将向下移动...)。

我过去曾编写脚本,将文件的全部内容插入到一个空文件中,但我希望将一个文件中的某些行“复制并粘贴”到另一个文件的中间。是否可以按行号搜索文件?我的总体目标可能吗?提前致谢。

4

2 回答 2

0

试试 each_with_index,如果你可以将整个文件保存在内存中,那么脚本非常简单。

IO.readlines("/etc/passwd").each_with_index do |line, line_num|
  if (line_num % 6 == 2)
    puts line 
  end
end

然后,您可以重定向到一个新文件或打开一个新文件并使用

opened_file.puts line

如果您有行号列表,您也可以浏览这些行号:

lines = IO.readlines(file)
line_numbers.each do |i|
   puts lines[i]
end
于 2013-01-16T17:16:36.247 回答
0

只需使用 split 函数将文本转换为数组,然后您可以按数字甚至范围选择行:

arraytext = filetext.Split("\n")
arraytext[0] #for first line
于 2013-01-16T17:19:17.950 回答