Используя gnu awk
, вы можете использовать это:
awk -v OFS=", " -v FPAT='\\[[^]]*\\]|"[^"]*"|[^[:space:]]+' '{
for (i=1; i<=NF; i++) {
gsub(/^[["]|[]"]$/, "", $i)
$i = "s" i "=\"" $i "\""
}
$0 = "line" NR ORS $0
} 1' file
Выход:
line1
s1="aaa", s2="bbb bb", s3="ccc", s4="ddd dd", s5="eee"
line2
s1="bbb", s2="ccc cc", s3="ddd", s4="eee ee", s5="fff"