我有一个以下示例格式的文本文件
文件.txt
Record1 20 23;
Record2 256;
Record3 45 679 98 1;
每行中的列数可以不同。我想根据第 1 列值更改仅包含两列的文件。以下是目标输出。
文件_2_Columns.txt
Record1 20;
Record1 23;
Record2 256;
Record3 45;
Record3 679;
Record3 98;
Record3 1;
答案1
这是一种方法
awk '{for(a=2;a<=NF;a++){printf "%s %s%c\n",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt
祝你剩下的作业顺利;-)
如果老师对最短答案给予额外学分,请尝试
awk '{for(a=2;a<=NF;){printf"%s%c\n",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt