SED替换索引字段

问题描述 投票:-1回答:3

是否可以替换分隔字符串中的字段,以通过其位置对其进行寻址?

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!
csv sed field
3个回答
1
投票

不是sed ..但..

awk 'BEGIN{FS=OFS=";"} {$5="something"; print $0}' input.txt


1
投票

这可能适合你(GNU sed):

sed 's/[^;]*/something/5' file

0
投票

这是我的解决方案:

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

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

对于PCRE变体:

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

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.