我有一个文件,其中第一行是文件的头,随后的行中包含相应的值。我想用第二行的值替换逗号的第三行。因此,我的第三行将包含第二行的值加上第三行的现有值。这个过程一直持续到我再次得到一行具有相似模式值的行,并将其复制到后续行以产生类似第三行的结果。
编程语言:Unix shell脚本
例如 sale.txt
Name,flavour,country,sale,POC
Magnum,chocolate,UK
,,,100,Alex
,,,200,Aman
,,,50,Perish
Cornetto,vanilla,US
,,,30,Robert
,,,60,Mary
.
.
.
输出应为:
Name,flavour,country,sale,POC
Magnum,chocolate,UK,100,Alex
Magnum,chocolate,UK,200,Aman
Magnum,chocolate,UK,50,Perish
Cornetto,vanilla,US,30,Robert
Cornetto,vanilla,US,60,Mary
.
.
.
答案 0 :(得分:0)
我为此创建了一个awk
脚本:
ans.sh
#!/usr/bin/awk -f
BEGIN { OFS = FS = "," }
NR > 1 {
if ($1 == "") $1 = Name
if ($2 == "") $2 = flavour
if ($3 == "") $3 = country
Name = $1
flavour = $2
country = $3
}
{ print }
然后我在您的文件上运行了该脚本:
mayankp@mayank:~/Documents$ awk -f ans.sh sale.txt
Name,flavour,country,sale,POC
Magnum,chocolate,UK
Magnum,chocolate,UK,100,Alex
Magnum,chocolate,UK,200,Aman
Magnum,chocolate,UK,50,Perish
Cornetto,vanilla,US
Cornetto,vanilla,US,30,Robert
Cornetto,vanilla,US,60,Mary
希望这会有所帮助。