到目前为止,我一直在使用sed命令,例如在文件的每一行中更改每个数字123到456,但现在我必须做更复杂的查询,我需要帮助。你知道我怎么用sed命令来解决这个问题:
在文件abc.txt中的每一行中,如果存在来自集合(123,456,789)的数字,并且存在编号4242,更改编号4242到2424?
答案 0 :(得分:1)
sed -e '/123\|456\|789/ s/4242/2424/'
第一部分是“地址”,只有在地址匹配时才会发生以下替换。 \|
表示“或”,它将替代品分开,因此任何数字都匹配。
答案 1 :(得分:0)
启用扩展正则表达式
sed -E '/(123|456|789)/s/4242/2424/' file
应该这样做。