Text 展开一列,同时保留另一列

Text 展开一列,同时保留另一列,text,awk,Text,Awk,我试图让第1列对第2列中需要在新行上的每个值重复 cat ToExpand.txt Pete horse;cat;dog Claire car John house;garden Pete horse cat dog Claire car John garden 我的第一次尝试: cat.awk BEGIN { FS="\t" RS=";" } { print $1 "\t" $2 } awk-f expand.awk

我试图让第1列对第2列中需要在新行上的每个值重复

cat ToExpand.txt

Pete    horse;cat;dog
Claire  car
John    house;garden
Pete    horse
cat
dog
Claire  car
John
garden
我的第一次尝试:

cat.awk

BEGIN {
        FS="\t"
        RS=";"
}
{
        print $1 "\t" $2
}
awk-f expand.awk ToExpand.txt

Pete    horse;cat;dog
Claire  car
John    house;garden
Pete    horse
cat
dog
Claire  car
John
garden
所需输出为:

Pete    horse
Pete    cat
Pete    dog
Claire  car
John    house
John    garden
Pete    horse
Pete    cat
Pete    dog
Claire  car
John    house
John    garden

我在这条路上走对了吗?还是你会用另一种方法?提前感谢。

您还可以将
FS
值更改为正则表达式,并执行以下操作:

awk -F"\t|;" -v OFS="\t" '{for(i=2;i<=NF;i++) print $1, $i}' ToExpand.txt
Pete    horse
Pete    cat
Pete    dog
Claire  car
John    house
John    garden
awk-F“\t |”“-vofs=“\t”{for(i=2;i尝试:

这将使用换行符、第一个字段和输出字段分隔符替换分号的每次出现

输出: