我有一個文本文件,其中包含以下內容。紅寶石一條線可以匹配多行
one two three
four five six
seven eight nine
ten eleven twelve
我想下面的Ruby代碼轉換爲Ruby的一個襯墊命令它代替兩行(三四五六七八九)與空的空間。
input = File.new('./test', 'r+')
content = input.read
input.close
modified = content.sub("four five six\nseven eight nine", "")
print modified
我試過類似的東西,但沒有運氣。
ruby -pe 'gsub(/four five six\nseven eight nine/,"")' < ./test
有什麼想法嗎?謝謝!
也許正則表達式「或」會幫助:/(四五六七八九)/'。在命令行中這樣的情況下,通常情況下文件將被逐行讀取。 – abiessu
爲什麼選擇「單線」?這是一個人爲的限制,可能不是最好的方法。你想要「空白空間」還是要截斷匹配的文本?你正在截斷,但說你想要「空白」這是一個模糊的術語。而且,爲什麼不使用'sed',這會跑得快很多? –