在复杂查询中使用sed命令

时间:2018-01-29 12:27:27

标签: linux bash sed command

到目前为止,我一直在使用sed命令,例如在文件的每一行中更改每个数字123到456,但现在我必须做更复杂的查询,我需要帮助。你知道我怎么用sed命令来解决这个问题:

在文件abc.txt中的每一行中,如果存在来自集合(123,456,789)的数字,并且存在编号4242,更改编号4242到2424?

2 个答案:

答案 0 :(得分:1)

sed -e '/123\|456\|789/ s/4242/2424/'

第一部分是“地址”,只有在地址匹配时才会发生以下替换。 \|表示“或”,它将替代品分开,因此任何数字都匹配。

答案 1 :(得分:0)

启用扩展正则表达式

sed -E '/(123|456|789)/s/4242/2424/' file

应该这样做。