我想使用命令制作一个播放闹钟的crontab(对我的妻子来说)。该程序名为ipraytime,它提供了这样的输出。
$ ipraytime -u +2
Prayer schedule for,
City : Custom
Latitude : 021�� 25' 12" N
Longitude : 039�� 49' 47" E
Angle Method : Umm Al-Qurra University
TimeZone : UTC+2.0
Qibla : 061�� 45' 42" W of true North
Date Fajr Shorooq Zuhr Asr Maghrib Isha
--------------------------------------------------------------------
[09-05-2012] 4:19 5:43 12:16 15:35 18:48 20:18
Today's Imsaak : 4:11
Tomorrow's Imsaak : 4:10
Tomorrow's Fajr : 4:18
我想要的是crontab的时间格式,这意味着我需要切换分钟和小时的位置。改为19 4
。
我已经制作了这个命令,但不知道如何进行切换。
ipraytime -u +2| awk 'NR==12 {print $2"\n"$3"\n"$4"\n"$5"\n"$6"\n"$7}' | sed 's/:/ /g'
这给了我这样的输出
4 19
5 43
12 16
15 35
18 48
20 18
但我希望它像这样
19 4
43 5
16 12
35 15
48 18
18 20
因为这是crontab正在使用的。我和sort
玩了一下但是找不到解决办法。
(抱歉这个坏主题..不知道如何为此写一篇好文章)
答案 0 :(得分:2)
根本没有必要使用sed
。
$ ipraytime -u +2 | awk -F ' +|:' 'NR == 12 {for (i = 2; i <= 12; i += 2) print $(i+1), $i}'
19 4
43 5
16 12
35 15
48 18
18 20
答案 1 :(得分:1)
使用sed 's/\(.*\):\(.*\)/\2 \1/'
命令:
ipraytime -u +2 | awk 'NR==12 {print $2"\n"$3"\n"$4"\n"$5"\n"$6"\n"$7}'
| sed 's/\(.*\):\(.*\)/\2 \1/'