使用具有指定字符位置的流编辑器

时间:2019-05-18 05:10:36

标签: unix sed

我正在尝试提出一个满足

的代码

1。)将3的第一个实例替换为5。

2。)1.)仅在数字的第一个数字3时才可以发生。

例如,

38765-> 58765

43765不会被转换。

到目前为止,我有

sed 's/^3/5/' *.txt

但是我只是想不出一种方法来指定位置1 == 3时的条件。

我该怎么做才能改善?

1 个答案:

答案 0 :(得分:1)

Sed:

$ echo 38765 | sed 's/^3/5/'
58765
$ echo 43765 | sed 's/^3/5/'
43765

即。只需用5r替换前导3。

要在第二位置替换3:

$ echo 33765 | sed 's/\(^.\)3/\15/'
35765

更通用的方法:

$ echo 33333 | sed 's/\(^.\{3\}\)3/\15/'
33353                       ^
                            number of characters before the one to replace, 0-4