linux shell / sed /awk/ 相关脚本编程 如何把一个文件中的匹配内容后面的一段字符删除。

比方说下面文件。

需要替换的有2中类型。
Part label="property 10000-Shell: 5Q0_803_105-TM25_LAENGSTRAEGER_VORN_30_03_2011-HC450XDZ100MB"
替换为 Part label=" 5Q0_803_105“

另一种为:Part label="property 11000-Shell: 5Q0_803_107_A-TM22_DECKTEIL_LTRG_VO_11_02_2011-HC450XDZ100MB"
替换为Part label="5Q0_803_107_A”

以上替换内容的特点是。
part label 后面的值总在变化。有很多种。
不变的格式2种。
Part label="property.....shell: xxx_xxx_xxx.....“
或Part label="property.....shell: xxx_xxx_xxx_x-.....“

需要提取出来的内容如5Q0_803_105或5Q0_803_107_A特征是3个字符隔隔一个下划线。

求教如何实现!!!!!!!!!!!!!!

sed 's/\(Part label=\).*:\(.*\)-.*/\1"\2"/g' 文件名 > 输出文件名


我自己测试了一下,应该没问题

追问

请问,把替换的内容在该行的下一行添加一行。如何实现。

追答sed 's/\(Part label=\).*:\(.*\)-.*/\1"\2"\n/g'文件名 > 输出文件名

温馨提示:答案为网友推荐,仅供参考
相似回答