我正在尝试删除一个字符串,包括一个字符“_”到另一个字符“:”,但不包括该字符。所有内容都在同一行上。
我有具有不同名称和编号的文件,例如包含:
some_name_123:456(other_name_123:456,some_word_567:765, and so on...
我试图删除_123
,每个文件中都有不同的模式,所以我最终得到:
some_name:456(other_name:456,some_word:765,
但是,我似乎只能删除从第一个_
到:
最后一个的所有内容some_:456
,但这并不是我想要的。以下是我目前得到的结果。有人能帮忙吗?
sed -e 's/\(+\).*\(@\)/\1\2/'
这在第一次发生时给出了我想要的结果,但没有给出其余发生的结果:
sed 's/_[^_]\+:/:/'
答案1
echo "some_name_123:456" | sed 's/\(.*\)_.*:\(.*\)/\1:\2/g'
给出
some_name:456
这就是你想要的吗?