【发布时间】:2018-04-07 09:07:12
【问题描述】:
我有这样一行:
原创
sometext1 sometext2 word:A12 B34 C56 sometext3 sometext4
sometext5 sometext6 word:A123 B45 C67 sometext7 sometext8
sometext9 sometext10 anotherword:(someword1 someword2 someword3) sometext11 sometext12
已编辑
asdjfkklj lkdsjfic kdiw:A12 B34 C56 lksjdfioe sldkjflkjd
lknal niewoc kdiw:A123 B45 C678 oknes lkwid
cnqule nkdal anotherword:(kdlklks inlqok mncvmnx) unqieo lksdnf
期望的输出:
asdjfkklj lkdsjfic kdiw:A12-B34-C56 lksjdfioe sldkjflkjd
lknal niewoc kdiw:A123-B45-C678 oknes lkwid
cnqule nkdal anotherword:(kdlklks-inlqok-mncvmnx) unqieo lksdnf
已编辑:这会更明确吗?但坦率地说,这比写sometext# 更难阅读和回答。我不知道人们的喜好。
我只想在字母字母后跟一些数字后用破折号替换空格,并用两个括号之间的单词之间的破折号替换空格。而不是该行中的任何其他空格。也希望对语法进行解释。
谢谢!
【问题讨论】:
-
为什么
sometext2 word中的t2 w之间没有空格,符合字母后跟数字的标准。是不是一定要多位数。它必须是一个有边界的字符吗? -
三个部分是否总是用破折号连接?
-
@123 sometext1 sometext2 只是表示一堆文本。我只是用数字来表明它们是不同的字符。第三个例子中不同的词组也是如此。
-
@Armali 不,可能有 3 个以上的组。第三个例子中的词组也是如此。
标签: bash sed character substitution digits