仅在特定匹配后从文件中删除文本

仅在特定匹配后从文件中删除文本

我有一个包含多次出现的字符串的文件,我需要使用特定匹配仅删除其中一次出现。我似乎找不到一个好的方法来做到这一点,我不断删除所有出现的情况

sed -i "s/|item2//g"

文件格式:

 "1234567890|item2",
 "1234567895|item2",
 "3454343345|item1|item2",
 "7854343345|item1|item3",
 "0454343555|item1|item4|item6",

我需要做的是匹配第一组数字 3454343345,然后删除特定的字符串,例如 item2。

我想要得到的输出

 "1234567890|item2",
 "1234567895|item2",
 "3454343345|item1|",
 "7854343345|item1|item3",
 "0454343555|item1|item4|item6",

答案1

尝试这个,

 sed -e '/^"3454343345/ s/item2//' file

"1234567890|item2",
"1234567895|item2",
"3454343345|item1|",
"7854343345|item1|item3",
"0454343555|item1|item4|item6",
  • 如果输出与您想要的结果匹配,则替换-e为以进行内联编辑。-i

相关内容