我正在尋找一種方法來從匹配正則表達式模式的字符串中刪除特定字符。我使用換行符將文本存儲在製表符分隔的文件中,該文件應該每行都有一條記錄,並且我試圖用空格替換所有換行符。換行符不會出現在最後一個列(這是帶有字母數字鍵的短列)中。替換模式中的特定字符
至恕我直言,解決這個問題的方法是以下模式內更換的\n
每一個實例:
[^\t]*\t[^\t]*
我的解決方案到現在爲止使用了三個步驟:
- 替換爲「好」
\n
使用s/\([^\t]*\t{x}[^\t]*\)\n/\1#12398754987235649876234#/g
和x
比我文件中的預期列數少一個文本的其餘部分(例如長數字)缺少的特殊字符串 - 替換所有的(「壞」)
\n
用空格 - 用一個新行
取代長號碼,但我有一個文本文件相當多的千兆字節和我正在尋找一個方式做這在一個單sed
步。
例輸入:
foo \t Each multiplex has screens allocated \n
to each studio. \t abc \n
bar \t The screens need filling. \t bcd \n
123 \t Studios have to create product to fill \n
their screen, and the amount of good product is limited. \t cde \n
輸出:
foo \t Each multiplex has screens allocated to each studio. \t abc \n
bar \t The screens need filling. \t bcd \n
123 \t Studios have to create product to fill their screen, and the amount of good product is limited. \t cde \n
從字面上看,字符串是從一個數字開始的嗎? – Bohemian
不,我修改我的示例以消除歧義。列中沒有任何模式(可以是文本,數字,標點符號......),除了僅用於分隔列的'\ t'外。 – ATN
您正在嘗試刪除任何'* n *'不會跟隨「。」,是嗎? – Beta