SED替换索引字段

时间:2019-03-03 14:48:39

标签: csv sed field

是否可以通过其位置替换定界字符串中的字段?

aaa;bbb;ccc;ddd;sdfsfsdfsf;2324234234;dfdffdf;

用一些东西替换字段5。


Here is my solution:

To replace a field NN+1 with BLAH in a semicolon delimited string:

    sed 's/\(\([^;]\+;\)\{NN\}\)[^;]\+;\(.*\)/\1BLAH;\3/'

for the PCRE variant:

    sed -r s/(([^;]*;){NN})[^;]*;(.*)/\1BLAH;\3/g

Thanks!

3 个答案:

答案 0 :(得分:1)

不是sed ..但是..

enumFromTo

答案 1 :(得分:1)

这可能对您有用(GNU sed):

for (const auto& [key,value] : mp)
{
    for (const auto& el : key)
    {
        std::cout << el << ", ";
    }
    std::cout << value << '\n';
}

答案 2 :(得分:0)

这是我的解决方法:

用分号分隔的字符串中的BLAH替换NN + 1字段:

sed 's/\(\([^;]\+;\)\{NN\}\)[^;]\+;\(.*\)/\1BLAH;\3/'

对于PCRE变体:

sed -r s/(([^;]*;){NN})[^;]*;(.*)/\1BLAH;\3/g

谢谢!