我正尝试在bash中使用tr
来替换比赛的最后一个字符。该字符串将包含5位数字的子字符串,后跟一个破折号,但我想用斜杠替换该破折号。
我想使用这样的东西:
echo "xyzvb12345-Ab-C5678-dEf" | tr "#####-" "#####/"
要获得这样的输出:
xyzvb12345/Ab-C5678-dEf
是否可以使用tr
来做到这一点?还是sed
?
编辑: 这不是仅查找和替换文本的许多票证的重复。在标记为重复项之前,请仔细阅读。
答案 0 :(得分:1)
echo "xyzvb12345-Ab-C5678-dEf" | sed 's/\([0-9]\{5\}\)-/\1\//g'
[0-9]
匹配数字
\{5\}
匹配上一组(数字)中的五个
\(...\)
设置匹配组,以便在替换中被引用(作为\1
)
g
告诉sed替换输入中的所有匹配项
答案 1 :(得分:0)
echo "xyzvb12345-Ab-C5678-dEf" | sed '0,/-/s//\//'