【发布时间】:2014-06-04 23:27:10
【问题描述】:
我目前正在使用这个命令,
cal $month $year | sed -n '1,2p'
cal $month $year | sed -n '3,$p' |
sed -n '/'$day'/{s/.*\('$day'.*\)/\1/p; :a; n; p; ba; }'
它给了我这个输出
March 2014
Su Mo Tu We Th Fr Sa
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 31
我怎样才能得到这个输出?
March 2014
Su Mo Tu We Th Fr Sa
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 31
仅供参考:$month $year $day 正在使用当前日期。
我试图避免使用一定数量的空格,因为如果是不同的日子,那么这些数字将与空格不匹配。
编辑:乔纳森·莱弗勒
谢谢!这非常接近我正在寻找的输出。您发布的示例输出正是我正在寻找的,但在尝试了您的代码之后。它给了我这个。
March 2014
Su Mo Tu We Th Fr Sa
2 3 4 5 Q6 7 8
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 31
我怎样才能删除带有 Q 的行?我假设这是来自您提供的第二个s///
编辑:
想办法,谢谢你的帮助!
【问题讨论】:
-
我想您在尝试运行此片段时已经设置了
day=4、month=3、year=2014。最好创建一个 SSCCE (Short, Self-Contained, Correct Example),在这种情况下,这意味着显式设置三个变量。你的sed命令太多了;您应该可以一次性完成所有操作。