2015-02-07 47 views
0

我需要在字段中打印所有年份大於1900的年份。我已經習慣awk以獲得該日期的字段。但我無法弄清楚如何使用awk來拉動只有> = 1900的年份。如何從日期格式中提取年份並查找所有年份大於

到目前爲止,我通過輸入此拉這個領域:

的awk -F '' '{打印$ 5}' presidents.csv

這給了我這些日期

4/03/1893 
4/03/1897 
14/9/1901 
4/3/1909 
4/03/1913 
4/03/1921 
2/8/1923 
4/03/1929 
4/03/1933 
12/4/1945 
20/01/1953 
20/01/1961 
22/11/1963 
20/1/1969 
9/8/1974 
20/01/1977 
20/01/1981 
20/01/1989 
20/01/1993 
20/01/2001 
20/01/2009 
Incumbent 

回答

2
awk -F',' '{print $5}' presidents.csv | awk -F '/' '$3 > 1900 { print $1"/"$2"/"$3 }' 
+2

不需要spl它有兩個命令。 – Jotne 2015-02-08 08:41:11

2

試試這個

#instead of presidents.csv 
echo " 
f1,f2,f3,f4,4/03/1893 
f1,f2,f3,f4,4/03/1897 
f1,f2,f3,f4,14/9/1901 
f1,f2,f3,f4,4/3/1909 
f1,f2,f3,f4,4/03/1913 
f1,f2,f3,f4,4/03/1921" \ 
| awk -F',' '{print $5}' \ 
| awk '{split($0,lineArr,"/");if (lineArr[3] > 1900) print $0}' 
14/9/1901 
4/3/1909 
4/03/1913 
4/03/1921 
+0

當[Sridhar](http://stackoverflow.com/users/3095460/sridhar)將其作爲一行代碼直接使用'presidents.csv時,爲什麼要這樣做? '文件? – user3439894 2015-02-08 00:26:58

+0

這種形式是作爲一個測試牀。你可以看到輸入,你可以評論你喜歡的任何東西,你可以看到輸出。所以你總是可以註釋掉所有'echo',並且在'... print $ 5}之後放置presidents.csv「,並且你可以把我的第二個awk語句放在同一行上。祝好運,祝你好運! – shellter 2015-02-08 00:42:32

+0

OP所要求的並不複雜,以至於需要提供一個「測試平臺」,尤其是考慮到OP中顯示的awk命令的輸出,它只是進一步過濾初始輸出的問題同時通過另一個'awk'命令將其回送。是的,當你修改爲有用的時候顯示的結果會輸出想要的結果,但是Sridhar提供的不是那麼複雜以至於需要一個「測試牀」(或解釋) – user3439894 2015-02-08 01:04:44

相關問題