亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 歡迎大俠來一顯身手。 [打印本頁]

作者: cfzxwxb    時間: 2015-03-31 21:32
標題: 歡迎大俠來一顯身手。
cal 2013 命令會產(chǎn)生一個文本文件,類似這樣:
                              2013                              

        一月                   二月                   三月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
       1  2  3  4  5                   1  2                   1  2
6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        四月                   五月                   六月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6             1  2  3  4                      1
7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        七月                   八月                   九月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

        十月                  十一月                 十二月      
--More--(80%)
怎樣生成一個如下的文本文件:?
20130101二
20130102三
20130103四
20130104五
20130105六
20130106日
20130107一
......
一直生成到
20131231二

作者: bikkuri    時間: 2015-04-01 00:25
本帖最后由 bikkuri 于 2015-04-01 08:43 編輯
  1. year=2013;for month in $(seq 12);do cal $month $year|awk -vy=$year -vm=$month 'NR==2{for(w=0;w<NF;w++)week[w]=$(w+1)}NR>2{for(d=NF;d>0;d--)day[10000*y+100*m+$d]=($d>7)?week[d-1]:week[6-NF+d]}END{for(d in day){print d"["day[d]"]"}}';done|sort
復(fù)制代碼
  1. year=2013;for month in $(seq 12);do cal $month $year|sed '1,2d;s/ /\n/g'|xargs -Iday date -d $year-$month-day +%Y%m%d[%a];done
復(fù)制代碼
回復(fù) 1# cfzxwxb


   
作者: 聆雨淋夜    時間: 2015-04-01 01:23
本帖最后由 聆雨淋夜 于 2015-04-01 01:30 編輯
  1. for i in `seq 12`
  2. > do
  3. > cal $i 2015|xargs|awk -vv=$i '{for(i=10;i<=NF;i++){"date -d 2015-"v"-"$i" +%Y%m%d%w" |getline var;print var >>"file"}}'
  4. > done
復(fù)制代碼

作者: bikkuri    時間: 2015-04-01 01:37
你直接用:
  1. for i in `seq 12`
  2. do
  3. cal $i 2015|xargs|awk -vv=$i '{for(i=10;i<=NF;i++){"date -d 2015-"v"-"$i" +%Y%m%d[%w]" |getline var;print var >>"file"}}'
  4. done
復(fù)制代碼
不是可以省掉后面的那條sub處理?


回復(fù) 3# 聆雨淋夜


   
作者: 聆雨淋夜    時間: 2015-04-01 01:48
將上面得到的file最后一個數(shù)字改為漢字
  1. awk -F '' -vOFS='' 'BEGIN{s="日 一 二 三 四 五 六";split(s,a," ")}{$NF=a[$NF+1]}1' file
復(fù)制代碼

作者: 聆雨淋夜    時間: 2015-04-01 01:49
回復(fù) 4# bikkuri
好主意,我對date命令不熟,哈哈

   
作者: ly5066113    時間: 2015-04-01 08:41
回復(fù) 1# cfzxwxb


try:
  1. seq 365 | sed 's/.*/date -d "20121231 +& day" +%Y%m%d%a/e'
復(fù)制代碼

作者: bamqjurgg    時間: 2015-04-01 10:04
附上小弟的代碼 只是換了個思路 請勿參考,效率很低。
附帶請教大家一個問題
  1. #!/bin/sh
  2. read -p "Please input the year:" year
  3. days=`date -d $year-12-31 "+%j"`
  4. now=`date +%j`
  5. seq 1 `expr "${days#0}" - "${now#0}"`          #此行可正常運行出序列
  6. for i in `seq 1 "${now#0}"`
  7. do
  8. echo `date -d -$i+day "+%F-%w"`
  9. done
  10. for k in `seq 1 `expr "${days#0}" - "${now#0}"``    #為何放入for循環(huán)中就報錯。
  11. do
  12. echo $k
  13. #echo `date -d $k+day "+%F-%w"`
  14. done
  15. ~
復(fù)制代碼
最后排序。
作者: bamqjurgg    時間: 2015-04-01 10:14
回復(fù) 7# ly5066113

這個可以改為個通用型么 遇到366天也正常的。
作者: blackold    時間: 2015-04-01 11:10
try:
  1. echo 2013-{01..12}-{01..31}|tr \  '\n'|date -f - +%Y%m%d%a 2>/dev/null
復(fù)制代碼

作者: Herowinter    時間: 2015-04-01 11:12
回復(fù) 9# bamqjurgg

這個本來就是通用的, 你把365改成366結(jié)果也正常.

   
作者: bikkuri    時間: 2015-04-01 12:40
本帖最后由 bikkuri 于 2015-04-01 12:45 編輯
  1. seq 20130101 20131231|date -f - +%Y%m%d[%a] 2>/dev/null
復(fù)制代碼
  1. printf "%d\n" {20130101..20131231}|date -f - +%Y%m%d[%a] 2>/dev/null
復(fù)制代碼

作者: 我是一隻羊    時間: 2015-04-01 12:51
本帖最后由 我是一隻羊 于 2015-04-01 12:51 編輯

有沒有人不涉及日期邏輯來個純文本處理....坐等jason大神....
作者: cfzxwxb    時間: 2015-04-01 13:54
高手云集啊!高手在民間。
我用shell語言編程10年以上了,但這些技巧我很少用,前幾天在網(wǎng)上抓股票數(shù)據(jù),在股票沒有開盤的日子里,程序就空運行,所以我想生成一個日期再剔除掉周六周日,這樣計算機空運行少點兒。想不到引無數(shù)英雄競折腰啊!
謝謝各位高手!
感謝各位高手獻技!
感謝各位高手的精彩表演!
作者: bamqjurgg    時間: 2015-04-01 19:39
回復(fù) 11# Herowinter
我的意思是直接按年份腳本自動判斷是不是閏年


   
作者: Herowinter    時間: 2015-04-01 19:50
回復(fù) 15# bamqjurgg

自己在前面加個閏年判斷,傳入365或366, 很難嗎?
   
作者: Herowinter    時間: 2015-04-01 19:54
回復(fù) 15# bamqjurgg
  1. d=365;y=2014;if((y%100==0));then if((y%400==0));then d=366;fi;elif((y%4==0));then d=366;fi;echo $d
  2. 365
  3. d=365;y=2000;if((y%100==0));then if((y%400==0));then d=366;fi;elif((y%4==0));then d=366;fi;echo $d
  4. 366
  5. d=365;y=2020;if((y%100==0));then if((y%400==0));then d=366;fi;elif((y%4==0));then d=366;fi;echo $d
  6. 366
  7. d=365;y=2100;if((y%100==0));then if((y%400==0));then d=366;fi;elif((y%4==0));then d=366;fi;echo $d
  8. 365
復(fù)制代碼
用$d替換seq中的365應(yīng)該就可以了.
作者: bamqjurgg    時間: 2015-04-01 20:31
借助上邊的免去了判斷,加個變量進去。
  1. #!/bin/sh
  2. read -p "Please input the year:" year
  3. seq ${year}0101 ${year}1231|date -f - +%Y%m%d[%a] 2>/dev/null
復(fù)制代碼

作者: jason680    時間: 2015-04-04 22:36
回復(fù) 13# 我是一隻羊

http://www.72891.cn/forum.php?mod=redirect&goto=findpost&ptid=4156581&pid=24294820&fromuid=24785593

http://www.72891.cn/forum.php?mod=redirect&goto=findpost&ptid=4156581&pid=24295392&fromuid=24785593   
作者: 我是一隻羊    時間: 2015-04-05 16:19
回復(fù) 20# jason680


    膜拜大神...月份和月份天數(shù)對應(yīng)關(guān)系...之前一直都是一三五七八十臘三十一天永不差這么背的...真是弱爆了....
作者: cfzxwxb    時間: 2015-04-08 21:59
今天又回來看看自己的帖子,感覺自己真是弱爆了!強手如云。。。
但是,我自己覺得平時很少遇上難題,基本都能解決。
我應(yīng)該繼續(xù)學(xué)習(xí)嗎?我總覺得我自己夠用了!
在下對各位大俠敬仰了!
作者: cfzxwxb    時間: 2015-04-08 22:01
特別是19樓的大神,更是十分的了得!在下真真的仰慕。!
您是專職做這shell工作的?




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2