使用sed,尝试实现如下目标。
现有文本:值 7
新文本:值 2
这里的诀窍是,我尝试用值 2 替换目录中具有多个值(例如:值 7、值 6、值 27、值 108,...)的所有文件。
这是我已经尝试过的:
sed -i 's/Value */Value 2/g' *
但这确实只替换了值(例如:它将值 6 替换为值 26)。它将"值"替换为"值 2">
到目前为止尝试过:
sed -i 's/Value */Value 2/g' *
sed -i 's/Value '*'/Value 2/g' *
它仍然仅替换值,而不替换数字。我需要将所有"值*"替换为"值 2">
Value *
匹配Value
后跟零个或多个空格。您应该改用Value [0-9]*
。喜欢:
sed -i 's/Value [0-9]*/Value 2/g' *
或者,您可以将Value
放在捕获组中以避免重写它:
sed -i 's/(Value )[0-9]*/12/g' *
这可能对你有用(GNU sed):
sed -E 's/<(Value [^,]+, )*(Value) [^,]*/2 2/g' file
这会在一行中全局将值列表或单个值替换为单个值。