我有以下文件,可以通过从网页中提取信息,如下所示生成,但是你可以看到它缺少第4,5,7行的日期。 8:
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
我需要实现的是将第3行中的日期填入第4行和第5行,将第6行中的日期填入7&如图8所示,该文件可能具有多于上面的8行,并且将要求所有空白行用前一单元格中的内容填充。我在Stackoverflow上尝试了所有不同类型的答案,但没有一个能够做我需要的。
答案 0 :(得分: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