Linux的sed命令出现了一些难以理解的问题
首先这是我用来做实验的文件
使用sed命令配合正则进行替换,想的是把数字都替换成x
但是使用的时候出现了这样的结果
实在想不通为何会在第一个:之前添加了两遍x
如果有老哥们懂怎么回事能求教一下这个逻辑是咋回事嘛
为了检验差错的可能,我删除掉了第一列的字母
我之前猜测,可能是替换后面两组数字的时候在前面也重复了两次,如果是这样,那么执行结果应该会是xx:x:x
结果得到了这个
是真的百思不得其解了
首先这是我用来做实验的文件
使用sed命令配合正则进行替换,想的是把数字都替换成x
但是使用的时候出现了这样的结果
实在想不通为何会在第一个:之前添加了两遍x
如果有老哥们懂怎么回事能求教一下这个逻辑是咋回事嘛
为了检验差错的可能,我删除掉了第一列的字母
我之前猜测,可能是替换后面两组数字的时候在前面也重复了两次,如果是这样,那么执行结果应该会是xx:x:x
结果得到了这个
是真的百思不得其解了
在使用 sed
命令进行数字替换时遇到重复字符的问题,通常是由于替换命令中的正则表达式或替换字符串的使用不当引起的。具体来说,这种问题经常与 sed
的贪婪匹配行为或替换命令的格式有关。
在你的例子中,你提到想把数字都替换成 x
,但是出现了重复字符。这可能是因为 sed
的默认行为是在整个输入行中查找匹配项并进行替换,而且替换操作是基于整个匹配结果进行的。如果正则表达式匹配到了多个数字,并且替换字符串中没有考虑到这一点,就可能导致意外的重复。
[0-9]
来匹配单个数字。sed
命令中使用 g
标志来表示全局替换,即替换行中的所有匹配项。但是,这通常不会导致重复字符问题,除非替换字符串本身有问题。x
)没有包含任何可能导致重复的内容。使用具体的示例进行测试:由于你没有提供具体的 sed
命令,这里给出一个基本的示例,它应该能够正确地将所有数字替换为 x
而不出现重复字符:
sed 's/[0-9]/x/g' inputfile
这个命令会读取 `inputfile` 文件,并将文件中的所有数字替换为 `x`。
如果以上方法仍然无法解决问题,请检查你的 sed
命令和输入文件的具体内容,确保没有其他因素导致替换出现问题。如果可能的话,提供具体的 sed
命令和输入文件的示例文本将有助于进一步诊断问题。
7 回答5.5k 阅读
4 回答4.2k 阅读
2 回答910 阅读✓ 已解决
2 回答3.4k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
1 回答619 阅读
sed 默认支持的是基本正则表达式
https://www.cnblogs.com/wangkangluo1/archive/2012/04/13/24460...