我試圖做的,我有一個文本文檔以下分隔符:如何刪除後的所有文本和包括紅寶石
- 導入.txt文件使用紅寶石,由線分割它,推它到一個數組
- 刪除數組中所有字符串後面的所有字符
- 將每個數組元素寫回新文本文件中的新行。
我想使用紅寶石做這個,我已經有了第一步工作,但我無法通過第二步。我現在用一串字符串卡住了。任何幫助將不勝感激。
我試圖做的,我有一個文本文檔以下分隔符:如何刪除後的所有文本和包括紅寶石
我想使用紅寶石做這個,我已經有了第一步工作,但我無法通過第二步。我現在用一串字符串卡住了。任何幫助將不勝感激。
這是讓你開始做你想做的事情。您可能希望以使其更加緊湊,但我做到了冗長所以你可以按照流量
path_to_file = '/dir_path_to_file'
delimiter = ':'
strings = %w(aa:aa bb:bb cc:cc dd:dd) # this is some test data. replace with your array read in from file
# Open file for writing
File.open(path_to_file, 'w') do |file|
strings.each do |string|
index_of_delimiter = string.index(delimiter)
stripped_string = string.slice(0..index_of_delimiter - 1)
# append line to file with \n for new line
file << stripped_string << "\n"
end
end
假設你有一個文本文件是這樣的:
aaa
bbb
BEGIN
xxx
xxx
END
ccc
有一個「髒」一點紅寶石欺騙你可以用觸發器操作使用方法:
# Load file
lines = File.readlines("the_text_file")
# Reject all lines between BEGIN and END
lines.reject! { |line| true if (line =~ /^BEGIN/)..(line =~ /^END/) }
# Output result
puts lines
輸出:
aaa
bbb
ccc
他們正在尋找切割每一行:「按行分割,並將其推送到數組2)刪除所有字符後,包括數組中的所有字符串的特定分隔符」 –
@mu - Riiight..Oops ..好。那麼他們下次更好地描述他們的問題,所以我不提供無用的答案:)雖然它仍然是一個巧妙的技巧。我免費在這裏。 – Casper
它被稱爲觸發器操作符,不是範圍操作符。 –
您不必預先讀取整個文件。只需逐行處理。甚至還有一個ruby的命令行開關(-n
)。
說你的分隔符是|
:
cat inputfile | ruby -ne 'puts $_.sub /\|.*/, ""' > outputfile
或(使用-p
開關),
cat inputfile | ruby -pe '$_.sub! /\|.*/, ""' > outputfile
你想要什麼後刪除所有字符? – dave