-2

我需要替换文件每一行中特定范围的字符。

我试过这个

    perl -i -pe 'r77,79c/XXX/g' file

我正在尝试将第 77 个到第 79 个字符更改为XXX使用 Perl,但上面的代码不起作用。

4

4 回答 4

2

您想用 XXX 替换位置 [77-79] 的字符吗?

尝试

 perl -i -piorig_* -e "substr($_,76,3)=XXX" file

将创建一个名为 orig_file 的备份文件,以防止可能的数据丢失。

于 2013-10-14T19:59:40.940 回答
1
perl -i -pe 's/.{76}\K.../XXX/' file
于 2013-10-14T19:51:17.113 回答
1

你写了:

Actually i want to search a pattern in a file and whatever lines matching that pattern needs to be replaced to 50th & 51st character to XX

使用 sed:

sed -r '/pattern/s/^(.{49})..(.*)$/\1XX\2/' file
于 2013-10-14T20:07:57.670 回答
0
sed "/pattern/ s/^\(.\{49\}\)../\1XX/" YourFile

我们不触及终点

于 2013-10-28T16:29:52.053 回答