簡體   English   中英

使用'sed'shell命令部分替換字符串

[英]Partially replace string using 'sed' shell command

我需要按照以下模式刪除<#>:

vdd1a<1>  
vdd1b<2>  
vdd1c<3>  
....

輸出應類似於:

vdd1a  
vdd1b  
vdd1c  
...

我正在嘗試執行sed 's/\\(vdd1[az]*\\).<[0-9]>/\\1/' file1 > file2

但這一直給我“ vdd1”。

如何正確執行?

. 括號中的字母與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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM