如何使用ruby替換文本文件或xml文件的第一行?我在複製奇怪的xml API時遇到問題,並且在創建XML文件後需要編輯文檔指令。奇怪的是,我必須這樣做,但在這種情況下,這是必要的。用ruby替換文件的第一行或第n行
0
A
回答
1
有幾種不同的方法可以做到這一點:
使用
ARGF
(假設你的Ruby程序需要一個文件名作爲命令行參數)ruby -e "puts ARGF.to_a[n]" yourfile.xml
打開文件定期讀取
n
行File.open("yourfile") { |f| line = nil n.times { line = f.gets } puts line }
這種方法在內存上的密集程度較低,因爲一次只考慮一條線,這也是最簡單的方法。
使用
IO.readlines()
(如果整個文件將裝入內存只會工作!)IO.readlines("yourfile")[n]
IO.readlines(...)
將讀取你的文件中的每一行到一個數組。
凡n
在上述所有例子是nth
行的文件。
3
如果您要編輯XML,請使用專門爲此任務設計的工具。 sub
,gsub
如果被操縱的XML不在你的控制之下,那麼正則表達式不是很好的選擇。
使用Nokogiri解析XML,找到節點並更改它們,然後發出更新的XML。
有很多例子顯示如何做到這一點,再加上Nokogiri網站上的教程。
相關問題
- 1. 使用sed替換文本文件中的第一行
- 2. 閱讀Ruby中文件的第一行
- 3. 用其內容的第一行替換文件的名稱
- 4. 替換Java中的第一行文本文件
- 5. 只在文本文件的第一行替換某個元素
- 6. MATLAB:如何讀取文本文件的每一行第N行?
- 7. R:第(n + 1)行第n行第m + 1列與第(n + 1)行第m列之間的日期差
- 8. AWK命令從文件1更換第n個領域在第n行到file2
- 9. 替換第一行中的值
- 10. 刪除從第N行到第N行vim的行
- 11. 如何替換Java中的大文件的第一行?
- 12. 用文件名替換unix文件最後一行的第一個字符
- 13. 從文件中替換第一行文本
- 14. 從多個文件的第一行替換字符串
- 15. 替換第一行並保存到Matlab中的文件?
- 16. 在Android中替換文件的第一行
- 17. 如何在文件的第一行插入新行字符(\ n)?
- 18. 用sed替換第n個字符
- 19. ActiveRecord - 獲得第N行到第N + 10行的查詢結果
- 20. Java,是否可以用一個字符串替換文件的第N行而不創建臨時文件?
- 21. 比較SQL Server中的第一行和第n行
- 22. 在最後一行之前附加文件第n行
- 23. 批處理,讀取第n行到第m行的文本文件
- 24. 打破第N次執行一行
- 25. 丟掉第一行和最後n行
- 26. 用SQL選擇第n行
- 27. 得到文件第N行解析另一個文件
- 28. 替換第n次出現的單詞
- 29. 按行數選擇第一個第n行
- 30. imagettftext \\ n換行符第2部分
請發佈代碼不起作用,以便我們可以看到你正在嘗試完成的任務。 – 2013-02-10 16:35:59
您是否嘗試修改磁盤上的文件,或者讀取內容,然後在使用它之前修改特定行? – Phrogz 2013-02-10 16:41:36
@Phrogz無論哪種方式最有效。 – holaSenor 2013-02-12 02:46:39