【发布时间】:2018-09-01 12:46:50
【问题描述】:
我正在尝试将文本中的任何地方的_ _1 或可能的_3_1 替换为★。所以它可以是空格或下划线之间的数字,最后它总是一个数字。
到目前为止,我只能替换一个数字,并且每次尝试添加更多数字时它都会停止工作。
这是行不通的行:
sed -e 's/ [0-9] /★/g' |
更新的整个代码:
echo
echo `cal` |
sed "s/$(date +%e) / $(date +%e | sed 's/.*/★/g') /" |
sed s'/Su Mo Tu We Th Fr Sa//g' |
sed s'/ */ \| /g' |
sed 's/_[ 0-9]_[0-9]/★/g'|
sed s'/^ \|//' | sed s'/ \|//' | sed s'/\|/: /' |
sed s'/\|//g' | sed s"/$/ /"
原始字符串来自'cal', 出于某种原因,在当天放了一个 _ 。如果是 2.september 则表示 _ _2,如果是 30 日则表示 _3_0:
"September 2018 Su Mo Tu We Th Fr Sa _ _1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30"
我想要的输出 替换当前日期的星号。
"September 2018: ★ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30"
【问题讨论】:
-
请在您的问题中添加示例输入和该示例输入所需的输出。
-
@Cyrus 我现在更新了帖子,希望它更具描述性!
-
至少在 OS X 上,
echo $(cal) | od -a表明今天的日期在左侧有一个退格键:_\b_\b1