2016-11-09 54 views
1

我有以下的文件,可以通過從網頁中提取信息來生成,但是您可以看到它缺少第4,5,7行的日期& 8:使用shell填充CSV列以前的值

1,Nov 09 2016,Pakistan,Karachi Stock Exchange,Iqbal Day 
2,Nov 11 2016,Poland,Warsaw Stock Exchange,Independence Day 
3,Nov 14 2016,Colombia,Colombia Stock Exchange,Independence of Cartagena 
4,,India,India National Stock Exchange,Guru Nanak Jayanti 
5,,Sri Lanka,Colombo Stock Exchange,Ill Full Moon Poya Day 
6,Nov 15 2016,Brazil,Sao Paulo Stock Exchange,Republic Day 
7,,Palestinian Territory,Ramallah Stock Exchange,Independence Day 
8,,Sri Lanka,Colombo Stock Exchange,Ill Full Moon Poya Day 

我需要實現的是從ROW3日期填寫爲4,5和ROW6日期爲7 & 8,這個文件可能比上面的8行越來越將要求所有空行充滿前一個單元格中的內容。我已經在Stackoverflow上嘗試了所有不同類型的答案,但沒有人能夠做我需要的。

回答

1

假設第一行是完整的。 (在第2列中有日期值)。這給AWK的一行一試:

awk -F, -v OFS="," '{$2=$2?$2:d;d=$2}7' file 

隨着你的輸入,輸出:

1,Nov 09 2016,Pakistan,Karachi Stock Exchange,Iqbal Day 
2,Nov 11 2016,Poland,Warsaw Stock Exchange,Independence Day 
3,Nov 14 2016,Colombia,Colombia Stock Exchange,Independence of Cartagena 
4,Nov 14 2016,India,India National Stock Exchange,Guru Nanak Jayanti 
5,Nov 14 2016,Sri Lanka,Colombo Stock Exchange,Ill Full Moon Poya Day 
6,Nov 15 2016,Brazil,Sao Paulo Stock Exchange,Republic Day 
7,Nov 15 2016,Palestinian Territory,Ramallah Stock Exchange,Independence Day 
8,Nov 15 2016,Sri Lanka,Colombo Stock Exchange,Ill Full Moon Poya Day 
+0

工程請客非常感謝肯特! – Aidan