首页 > 技术文章 > linux中一行数据和多行数据相互转换

Ghost-bird 2019-09-26 14:57 原文

#一行数据分割成多行
awk 'BEGIN{i=1}{gsub(/,/,",\n");i++;print}' file.txt

#两行数据合并成一行
sed -n '{N;s/\n/ /p}' file.txt

#指定几行数据合并成一行(此为10行)
awk '{if (NR%10==0){print $0} else {printf"%s ",$0}}' file.txt

cat file.txt | awk '{if(NR%10!=0)ORS=" ";else ORS="\n";print}'

#多行数据合并成一行
awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}' file.txt

sed ':a ; N;s/\n/ / ; t a ; ' file.txt

cat file.txt | xargs

cat file.txt | tr '\n' ' '

 

推荐阅读