我需要刪除<#>在以下模式:使用「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