我有两个文件说test1 & test2在某些随机位置有差异。所以我想要搜索测试1与测试2不同的字符位置&想要替换*在测试1中。但是,仅仅知道char的位置,约束就不知道char。 所以我试图使用cmp -b来获取不同的字节位置,但不能在sed中获取某些内容或者可以在字节位置替换char的任何位置,或者在比较中会给出行号的内容。以及不同的字符排列。因此,任何帮助(主要的约束是不能用char值替换,因为不希望文件中其他位置的更改只在该位置进行更改)。 sed第一次出现替换也将不起作用,因为第一次出现可能在不同位置之前。sed命令替换特定字节位置的字符
0
A
回答
0
所以你只是想写一些字节在一些偏移量没有文件截断,也许dd会帮助?
设置:
$ cat f1
aaaaaaaaaaaaaaaaaaaaaaaaa
$ cat f2
aaaaaaaaaaaaaaabaaaaaaaaa
脚本:
if ! CMPOUT=`cmp -b f1 f2`; then
POS=`echo "$CMPOUT" | sed -r 's/^.*: byte ([0-9]+),.*$/\1/'`
echo -n '*' | dd of=f2 seek="$((POS-1))" bs=1 count=1 conv=notrunc
fi
结果:
$ cat f2
aaaaaaaaaaaaaaa*aaaaaaaaa
+0
感谢您的答案将尝试让你知道,这就是我想要的,很好地放在例子中,但我的文件是多行和差异可以在任何行中,文件也可以在MB中,也可以为此工作文件大小。 –
+0
@ Mahi.G:只要尝试一下,我认为它只适用于任何事情,包括二进制文件,只要'cmp'输出是预期的。 –
+0
谢谢,如果我想在文件2中使用dd之前在b之前加上b * aaaaaaaaaaaaaaa * baaaaaaaaa –
相关问题
- 1. sed命令替换一个特殊字符的字符串
- 2. sed命令来替换字符串
- 3. Sed命令替换字符串行
- 4. 使用sed命令替换字符串
- 5. 替换特定位置的字符
- 6. sed替换特定的子字符串
- 7. sed命令的问题瓦特/ HTML字符串替换
- 8. 使用Perl或sed替换固定位置的字符字段
- 9. 只在特定位置替换字符
- 10. 如何替换sed命令中具有预定义含义的特定字符?
- 11. sed:替换特定位置的空格
- 12. SED:在特定字节位置后附加额外字节
- 13. 命令到powershell替换 - 特殊字符
- 14. Java在字符串的特定位置替换字符?
- 15. 替换字符串中的字符,在特定位置
- 16. sed用特殊字符替换另一个字符串的特殊字符的命令
- 17. 替换字符串命令
- 18. sed命令有许多特殊字符
- 19. sed替换特殊字符tastic
- 20. sed在不同长度的字符串中的特定位置交换字符
- 21. 字符串替换的sed
- 22. 使用Groovy和SED命令替换带变量的字符串
- 23. 如何使用sed命令替换linux中的字符串?
- 24. Bash中的sed命令问题用于字符串替换
- 25. Sed和替换字符'\'的字符串
- 26. sed中的命令替换
- 27. 替换特定的字符
- 28. 使用sed替换自定义字符串替代命令'/'坏标志
- 29. sed命令不替换整个字符串
- 30. 使用sed用whois命令输出替换字符串
你提的问题是非常不清楚,我只是无法弄清楚你是什么之后。我相信这是一个有效的问题,因为你提出了一个问题并试图展示你试图解决它的方式。这只是一个模糊的实际意图是什么。你能提供两个文件(1-2行文本)的例子和你之后的结果吗? – grochmal