Bash 使用sed删除部分输出文件
我在通过另一组命令生成的文件中有以下输出Bash 使用sed删除部分输出文件,bash,shell,sed,Bash,Shell,Sed,我在通过另一组命令生成的文件中有以下输出 3 ReplicationFactor3 Conf.ms=126543 3 ReplicationFactor3 Conf.ms=139875 我需要从这个文件中删除单词ReplicationFactor和Conf.ms。我使用下面的sed命令,但它只删除Conf.ms sed -r -i 's/\b('ReplicationFactor'|Configsretention.ms=)\b//g' file.txt 如果有人能帮助从输
3 ReplicationFactor3 Conf.ms=126543
3 ReplicationFactor3 Conf.ms=139875
我需要从这个文件中删除单词ReplicationFactor和Conf.ms。我使用下面的sed命令,但它只删除Conf.ms
sed -r -i 's/\b('ReplicationFactor'|Configsretention.ms=)\b//g' file.txt
如果有人能帮助从输出文件中删除复制因子,我们将不胜感激。请尝试这种方法<代码>'ReplicationFactor'必须是
ReplicationFactor
sed -r -i 's/\b(ReplicationFactor|Conf.ms=)\b//g' file.txt,
预期的结果是什么?请尝试
sed-r-i的//\b(ReplicationFactor | Conf\.ms=)//g file.txt'
,请参阅。ReplicationFactor
和3
之间没有单词边界,因为r
和3
都属于\w
“word character”字符类,它由[A-Za-z0-9
组成(a_1A8__1
是一个单词,不管它看起来有多奇怪)。你需要依靠另一个因素来确定你需要删除的ReplicationFactor
的具体发生情况。谢谢你,弗兰克,这确实有效,我如何删除=sign。我尝试在末尾添加=sign,但不起作用。如果时间允许,我还想得到有关此命令的澄清。sed-I's#ReplicationFactor###s#Conf.ms=####file.txt
可以帮我去掉=号。这真的是你看到的等号吗?你可以用od-ctx1 file.txt
检查。或者试试“s#ReplicationFactor##s#Conf.ms.##########”这个点删除了我输出文件中的任何字符。你的解决方案工作得很好。谢谢你的时间在这件事上,我很高兴。
$> cat file.txt
3 ReplicationFactor3 Conf.ms=126543
3 ReplicationFactor3 Conf.ms=139875
$> sed -i 's#ReplicationFactor##;s#Conf.ms##' file.txt
$> cat file.txt
3 3 =126543
3 3 =139875