我需要删除<#>在以下模式:使用“sed的” shell命令部分替代串
vdd1a<1>
vdd1b<2>
vdd1c<3>
....
输出应该是这样的:
vdd1a
vdd1b
vdd1c
...
我试图做到这一点sed 's/\(vdd1[a-z]*\).<[0-9]>/\1/' file1 > file2
但它一直给我“vdd1”。
我该如何正确地做到这一点?
我需要删除<#>在以下模式:使用“sed的” shell命令部分替代串
vdd1a<1>
vdd1b<2>
vdd1c<3>
....
输出应该是这样的:
vdd1a
vdd1b
vdd1c
...
我试图做到这一点sed 's/\(vdd1[a-z]*\).<[0-9]>/\1/' file1 > file2
但它一直给我“vdd1”。
我该如何正确地做到这一点?
点后.
paren匹配后的字母1.你需要摆脱它。即,
sed 's/\(vdd1[a-z]*\)<[0-9]>/\1/' file1 > file2
或者,你可以只用一个空白的模式,即更换<[0-9]>
,
sed 's/<[0-9]>//' file1 > filed
如果线路不包含另一个<
除了一个在<#>
部分,你可以避免使用sed
和使用类似cut
代替,例如:
cut -d"<" -f1 <<< "vdd1a<1>"
会打印:
vdd1a
与文件调用它:
cut -d"<" -f1 <file1> file2
谢谢higuaro,我在这个文件中有其他模式,如“vdd3a <#>”和其他一些.. <#> ..我不想碰的东西。 – Bryan
感谢托特,我在这个文件中像“VDD 3 <#>”我不想触摸等图案。 – Bryan