我有一个巨大的文件 从第3行到结尾(文件-1中的#lines) 从第75行开始。我需要将字符串更改为123456789。
思考建议?我不能将每行的现有字符重复,因此我无法对其进行搜索。隐藏pii数据的乐趣
答案 0 :(得分:3)
让我们考虑一下这个测试文件:
$ cat testfile
.........-.........-.........-.........-.........-.........-.........-....ReplaceMeKeep
.........-.........-.........-.........-.........-.........-.........-....OldData..Keep
这将使用123456789
替换以第75列开头的九个字符:
$ sed -E 's/(.{74}).{0,9}/\1123456789/' testfile
.........-.........-.........-.........-.........-.........-.........-....123456789Keep
.........-.........-.........-.........-.........-.........-.........-....123456789Keep
这会将新字符串放在从第75位开始的前九个字符的位置:
$ awk '{print substr($0,1,74) "123456789" substr($0,75+9)}' testfile
.........-.........-.........-.........-.........-.........-.........-....123456789Keep
.........-.........-.........-.........-.........-.........-.........-....123456789Keep
答案 1 :(得分:3)
在 vim 中,您可以这样做:
%s/\(^.\{75\}\)\@<=........./1234567890/g
它基本上有75个字符的lookbehind(从行的开头开始),并用你的字符串替换该行的其余部分。