我正在尝试替换文件中的一行,该行在不同的计算机上可能有所不同。例如,该行可以类似于以下示例:
testLine=14
testLine=320
testLine=abc
我知道每次尝试使用sed替换行时,这些行都不相同,但额外的行将附加在末尾。我要使用的命令是:
sed -i 's/testLine=*/testLine=test/g' fileName
此命令将导致上述示例变为:
testLine=test14
testLine=test320
testLine=testabc
我希望这些行仅等于testLine=test,并删除等号的右边存在的内容。我需要在那些会产生我所寻求的结果的论点上加上什么?

最佳答案

您忘记在.之前添加*

sed -i 's/testLine=.*/testLine=test/' fileName

或者
sed -i 's/^testLine=.*/testLine=test/' fileName

regextestLine=*匹配字符串testLine加上以下=零次或多次。所以当它到达=符号时停止。但是testLine=.*将匹配字符串testLine加上以下零个或多个字符。在您的情况下,上面的regex将用testLine=test替换整个行

08-25 17:03