我有一个包含二进制数字的文件,我想用 sed -i 内联更改该文件。
该文件有这样的行:
00018342 0000 dc.b 11010101b
所以我想让它以这种方式表示:
00018342 0000 dc.b %11010101
我试过这个:
sed -e 's/[[:digit:]]\+\b/%&/g' test.txt
我认为只有在发现实际数字前面有“b”时才会在前面加上“%”。但它输出的是这样的:
%00018342 %0000 dc.b 11010101b
有什么想法我做错了吗?在添加“%”之后如何删除“b”?
您可以使用
请参阅在线 sed 演示:
细节:
\b
- 单词边界\([01]\+\)
- 第 1 组:一个或多个1
或0
数字b
-b
一封信\b
- 单词边界%\1
- 替换为%
字符 + 第 1 组值。POSIX ERE 版本是
sed -E 's/\b([01]+)b\b/%\1/g' file
.