2016-11-09 58 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