【发布时间】:2014-05-03 06:40:21
【问题描述】:
我在使用 sed 在 BASH 中格式化文本时遇到问题。 这是输入文件:
recfun.o -> timeout.o (set_timeout)
recursive.o -> timeout.o (timeout)
print_recursive.o -> recursive.o (ackermann)
rec-nam.o -> timeout+.o (timeout)
这应该是输出:
recfunDo -> timeoutDo [label="set_timeout"];
recursiveDo -> timeoutDo [label="timeout"];
print_recursiveDo -> recursiveDo [label="ackermann"];
rec_namDo -> timeoutPDo [label="timeout"];
这意味着:
替换: “-”代表“_”,然后是“.”代表“D”,然后“+”代表“P”,但不要用“->”代替“_>”
我是这样使用 sed 的:
sed -e 's/./D/' file | sed -e 's/+/P/' | sed -e 's/-/_/'
但它返回相同的输出,只是 D 替换了每行中的第一个字母。
感谢您的帮助!
【问题讨论】: