任何想法插入一個子字符串(;[^;]*
在這種情況下)成爲;
分離在一個特定的地方(在我的情況下,總是有4字段添加第四個字段)的正則表達式模式。 問題是,「字段」中的值是正則表達式,char ;
可能作爲模式存在(如在類或轉義字符中)而不是分隔符。在正則表達式模式中添加一個字符串
它在AIX上,所以沒有可用的GNU工具(posix sed或awk)。
可能的字符串的樣品和預期的結果
lazy;dog;are;running
-> lazy;dog;are;[^;]*;running
[^;]*;dog;are;[^;]*
-> [^;]*;dog;are;[^;]*;[^;]*
[^,;:0-9]*;dog;are;\;running
-> [^,;:0-9]*;dog;are;[^;]*;\;running
我嘗試基於第一串sed 's/;[^;]*$/[^;]*;&/'
,但不能建立在修改的sed的其他特殊情況下,由於缺乏回參考值 的(我認爲一個perl或者也許一個awk以避免重批次/ sed的
所以你不想計算出現在'[]'裏面的分號? – 2015-03-02 08:38:31
對,也不是';'在'\;'中出於同樣的原因 – NeronLeVelu 2015-03-02 08:52:29