linux - 使用 'sed' shell 命令部分替换字符串

标签 linux bash shell sed

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

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

关于linux - 使用 'sed' shell 命令部分替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188538/

相关文章:

iOS:Unix:Mac 从静态库中提取有关受支持架构的信息。如何?

arrays - 调整文件重命名脚本,以便它搜索子目录中的每个文件

python - 在 Mac OS 上执行 Python GIMP 脚本

bash - 将 tcpdump 输出写入压缩/gziped 文件

bash - sudo : ./untitled.sh: 找不到命令

java - 将javax包导入python

linux - 从内核树中编译 eBPF C 代码时出错

bash - unix 中的自定义脚本输出

c - 使用 fork() 产生内存映射

linux - 检查特定文本是否存在于 linux 子目录下所有文件的第一列中