任何想法插入一个子字符串(;[^;]*
在这种情况下)成为;
分离在一个特定的地方(在我的情况下,总是有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