为每个新列值创建“空格”,同时使用Col.1值作为参考

时间:2017-01-29 23:03:42

标签: bash shell awk

我有一个这样的文件:

-2  abandonar
-2  abandono
-2  abandonas
-2  abandona
-2  abandonamos
-2  abandonáis
-2  abandonan   
-4  abandonado
-4  abandonada
-4  abandonados
-4  abandonadas 
-5  abandona    
-5  abandonos                                       
-3  secuestrado 
-3  secuestrada 
-3  secuestrados    
-3  secuestradas    
-3  secuestraría    
-3  secuestrarías   
-3  secuestraríamos
-3  secuestraríais
-3  secuestrarían

我希望输出保留col 1,并且所有其他列只添加到一行中,如所需输出中所示 期望的输出:

-2  abandonar   abandono    abandonas   abandona    abandonamos abandonáis  abandonan   
-4  abandonado  abandonada  abandonados abandonadas 
-5  abandona    abandonos                                       
-3  secuestrado secuestrada secuestrados    secuestradas    secuestraría    secuestrarías   secuestraríamos secuestraríais  secuestrarían 

到目前为止我的努力:

nawk '1' RS='\n' ORS=' ' filename

awk '{RS="\n"; ORS=" "}{ print }' filename

我需要你的支持,最好使用awk,我是新手。感谢您的期待。

2 个答案:

答案 0 :(得分:0)

$ awk '$1!=p{printf "%s%s", (NR>1?ORS:""), $1; p=$1} {printf "%s%s", OFS, $2} END{print ""}' file
-2 abandonar abandono abandonas abandona abandonamos abandonáis abandonan
-4 abandonado abandonada abandonados abandonadas
-5 abandona abandonos
-3 secuestrado secuestrada secuestrados secuestradas secuestraría secuestrarías secuestraríamos secuestraríais secuestrarían

要学习Awk,请阅读Arnold Robbins撰写的Effective Awk Programming,4th Edition?

答案 1 :(得分:0)

$ awk '{a[$1]=a[$1] " " $2} END {for (i in a) { print i, a[i] }}' file
-4  abandonado abandonada abandonados abandonadas
-3  secuestrado secuestrada secuestrados secuestradas secuestraría secuestrarías secuestraríamos secuestraríais secuestrarían
-2  abandonar abandono abandonas abandona abandonamos abandonáis abandonan
-5  abandona abandonos