0
因此,我想要做的事情是将一行的第一部分与下一行的第一部分结合起来,每隔一行用冒号分隔。使用sed脚本将当前行的一部分与下一行的一部分隔行
输入数据在下面,我努力使它工作。
这是我希望它看起来像(希望这样):
Albania:Armenia
Angola:Antarctica
Argentina:American Samoa
这是输入:
Albania,EU,http://en.wikipedia.org/wiki/Albania
Armenia,AS,http://en.wikipedia.org/wiki/Armenia
Angola,AF,http://en.wikipedia.org/wiki/Angola
Antarctica,AN,http://en.wikipedia.org/wiki/Antarctica
Argentina,SA,http://en.wikipedia.org/wiki/Argentina
American Samoa,OC,http://en.wikipedia.org/wiki/American_Samoa
Austria,EU,http://en.wikipedia.org/wiki/Austria
Australia,OC,http://en.wikipedia.org/wiki/Australia
Aruba,NA,http://en.wikipedia.org/wiki/Aruba
Azerbaijan,AS,http://en.wikipedia.org/wiki/Azerbaijan
Bosnia and Herzegovina,EU,http://en.wikipedia.org/wiki/Bosnia_and_Herzegovina
Barbados,NA,http://en.wikipedia.org/wiki/Barbados
Bangladesh,AS,http://en.wikipedia.org/wiki/Bangladesh
Belgium,EU,http://en.wikipedia.org/wiki/Belgium
Burkina Faso,AF,http://en.wikipedia.org/wiki/Burkina_Faso
Bulgaria,EU,http://en.wikipedia.org/wiki/Bulgaria
Bahrain,AS,http://en.wikipedia.org/wiki/Bahrain
Burundi,AF,http://en.wikipedia.org/wiki/Burundi
Benin,AF,http://en.wikipedia.org/wiki/Benin
Saint Barthelemy,NA,http://en.wikipedia.org/wiki/Saint_Barthelemy
我已经想出到目前为止是这样的,以N获得下一条线,并且它部分起作用。名字的“垃圾”消失了,但第二名的“垃圾”仍然存在。 (这是一个sed脚本,我必须与所有其他的sed脚本所以没有AWK或任何运行的sed脚本)
s/,..,.+//
{N
s/\n/:/
p
}
我试图产生这样的输出:
Azerbaijan:Bosnia and Herzegovina,EU,http://en.wikipedia.org/wiki/Bosnia_and_Herzegovina
Barbados:Bangladesh,AS,http://en.wikipedia.org/wiki/Bangladesh
Belgium:Burkina Faso,AF,http://en.wikipedia.org/wiki/Burkina_Faso
Bulgaria:Bahrain,AS,http://en.wikipedia.org/wiki/Bahrain
Burundi:Benin,AF,http://en.wikipedia.org/wiki/Benin
哦,我的天哪,很快就感谢你看起来很完美 – fman
是的,比'paste -d:<(cut -d,-f1 inputfile | sed'$ d')<(cut -d,-f1 inputfile | sed'1d')',upvoted。 –