繁体   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