我有一个简单的列表,例如以下
ss_Asd_n1_455_9_1
ss_Asd_n1_98_9_32
ss_Asd_n1_562_9_145
ss_Asd_n1_1_9_6
使用Regex Linux我希望列表像Follwing一样修剪
ss_Asd_n1_455_9
ss_Asd_n1_98_9
ss_Asd_n1_562_9
ss_Asd_n1_1_9
我尝试了以下代码,但没有打印任何输出
grep '[a-z_]*[a-zA-Z]+(_)[v0-9]+(_)[0-9]+(_)[0-9]'
请指导我。预先感谢
看起来您只想sed 's/_[^_]*$//' filename
要在就位编辑文件,请使用sed -i
(或者如果您在BSD/MACOS,sed -i ''
)。
使用grep我会使用perl Regex语法'p',仅匹配匹配部分'o'
echo ss_Asd_n1_455_9_1 | grep -oP '[a-z]*_(?:[a-z]|[A-Z])+_[a-z][0-9]+_[0-9]+_[0-9]+'
ss_Asd_n1_455_9