Linux教程

linux:某列转为多行

本文主要是介绍linux:某列转为多行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

现有文件test如下所示:

预期转换为如下所示:

则可以通过以下命令实现:

#逐行读取test文件
while IFS= read -r line
do
need1=`echo "$line" | awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5}'` #提取每行的第一列到第五列
need2=`echo "$line" | awk '{print $6}' | tr "," "\n"` #提取每行的第六列并转为多行
num=`echo "$need2" | wc | awk '{print $1}'` #统计need2变量共有多少行
need3=`for (( c=1; c<=num; c++)) ; do echo "$need1" ; done` #重复打印need1变量num次
echo "$need3" >> file1 
echo "$need2" >> file2
done < test

paste file1 file2 > file3 #合并
这篇关于linux:某列转为多行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!