我在一个文件中有一堆代码编号,它们的格式通常为 integer.integer 第一个整数是必需的,第二个可能是空的。例如 123.45 或 12.345 和 12 都是有效的代码号。
我想使用 sed 将这些行中的每一行更改为
job{123}subjob{45}
job{12}subjob{345}
job{12}
到目前为止我有
sed -e 's/codenumber{\([0-9]*\)\.*\([0-9]*\)}/job{\1}subjob{\2}/g'
这导致
job{123}subjob{45}
job{12}subjob{345}
job{12}subjob{}
有没有办法让 sed 意识到当变量 \2 为空时,打印一个默认值,比如 0。因此给定示例的最后一行会说
job{12}subjob{0}
我想这可以通过两次 sed 运行来实现,但我很感兴趣是否可以通过一次运行。