我是sed的新手,我正在尝试替换一行的第n个字符,只要它是一个符号“ - ”
例如,如果是“ - ”,则将第4个位置替换为“X”:aaabbbccc
aaa-bbddd
aaa-cccbb
得到:
aaabbbccc
aaaXbbddd
aaaXcccbb
我发现可以用这个命令替换第n个位置: sed's / ^(。{3})。(。*)/ \ 1X \ 2 /'但是我无法合并给定条件(仅当给定符号时)
提前致谢!
答案 0 :(得分:3)
echo "aaabbbccc
aaa-bbddd
aaa-cccbb"|sed -r 's/^(.{3})-(.*)$/\1X\2/'
输出:
aaabbbccc
aaaXbbddd
aaaXcccbb
答案 1 :(得分:0)
这可能对您有用:
sed 's/^\(.\{3\}\)-/\1X/' file
或者
sed '/^.\{3\}-/s/./X/4' file