拆分列';将值转换为多行awk/unix/python

拆分列';将值转换为多行awk/unix/python,python,unix,awk,Python,Unix,Awk,以下是输入数据的示例行: header: id,indicator,{(pid,days_remaining)} row: id_558314,1,{(property_66021,7),(property_24444,1),(property_285395,6)} 预期数据输出: header: id,indicator,pid,days_remaining row1: id_558314,1,property_66021,7 row2: id_558314,1,property_2

以下是输入数据的示例行:

header: id,indicator,{(pid,days_remaining)}
row:    id_558314,1,{(property_66021,7),(property_24444,1),(property_285395,6)}
预期数据输出:

header: id,indicator,pid,days_remaining

row1: id_558314,1,property_66021,7
row2: id_558314,1,property_24444,1
row3: id_558314,1,property_285395,6
使用awk/unix/python很容易做到这一点吗?

这可能会对您有所帮助

$ cat file
header: id,indicator,{(pid,days_remaining)}
row:    id_558314,1,{(property_66021,7),(property_24444,1),(property_285395,6)}

$ awk -F, '{gsub(/[{}()]/,"")}FNR==1{print;next}{j=0;p=$1;for(i=3; i<=NF; i+=2){ $1=p;sub(/:/,++j"&",$1);print $1,$2,$i,$(i+1)}}' OFS=,  file
header: id,indicator,pid,days_remaining
row1:    id_558314,1,property_66021,7
row2:    id_558314,1,property_24444,1
row3:    id_558314,1,property_285395,6
$cat文件
标题:id,指示符,{(pid,剩余天数)}
行:id_558314,1,{(property_66021,7),(property_24444,1),(property_285395,6)}

$awk-F,'{gsub(/[{}()]/,“”)}FNR==1{print;next}{j=0;p=$1;用于(i=3;是的,这不是很难做到…现在,这个论坛不是关于我们做你的工作。你尝试过什么吗?你正在阅读文本文件的输入吗?我很抱歉没有发布我尝试过的内容。我对堆栈溢出和awk也相当陌生。我在玩一些sed命令,结合print的:awk-F“{{print$2}”| awk-F”(“{print$2}”| sed's/),$//g”,但我一直在努力运行一个循环来实现这一点,并且仍然打印第一列和第二列@sgp@jcoppens我将发布我尝试继续进行的所有研究。感谢大家的关注和关注。嗨@AkshayHegde-非常感谢你们在这里提供的帮助。这对我来说确实奏效了。
awk -F,  '{
              gsub(/[{}()]/,"")
          }
    FNR==1{
              print
              next
          }
          {
             j=0
             p=$1
             for(i=3; i<=NF; i+=2)
             { 
                $1=p  
                sub(/:/,++j"&",$1)
                print $1,$2,$i,$(i+1) 
             }
          }
        ' OFS=,  file