系统相关
首页 > 系统相关> > 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 #合并

标签:多行,need2,某列,echo,test,awk,linux,print,line
来源: https://www.cnblogs.com/chenwenyan/p/16424431.html