我有一個來自第三方系統的文件,我需要修改一下。有時候即將出現的文件在數據中間包含一個新的行字符。假設我能找到這條損壞的線路。我需要做的僅僅是刪除新的行字符並將該行與上面的行聯繫起來(當我將刪除新行字符時會發生這種情況)。 這裏是例如:在bash的特定行中刪除換行符(將兩行合併成一行)
data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2
data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
正如你可以看到行號3是錯誤的,需要被固定/與線4通過移除新行字符接合。 我有一個簡單的腳本,能夠找到'錯誤'(太短)線。 問題是:如何從特定行中刪除新的行字符(我有一個錯誤的行號)。
我嘗試過sed(sed ':a;N;$!ba;3s/\n/ /' data.log
),其中之前的s
是行號,但它不起作用。
...或者對這個問題有更好的解決方案。請幫忙。
是否有在當且僅當有一個多餘的換行符行開始的空間? – nrussell
是的。在下一行的開頭(跟隨錯誤行的那一行)有一個'空格'。 – szymon
你能指望在「腐敗」的情況下永遠存在的空間嗎? :-) 祝你好運。 – shellter