将 CSV 空逗号设为上一行项目的 "dittos"
Make CSV empty commas into "dittos" of previous line's items
我有一个文件,其中第一行是文件的 header,相应的值出现在后续行中。我想用第二行的值替换第三行逗号。所以我的第 3 行将包含第 2 行的值加上第 3 行的现有值。这个过程一直持续到我再次得到一行具有相似模式值的行,它应该被复制到后续行以产生类似第 3 行的结果。
编程语言: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
.
.
.
我为此创建了一个 awk
脚本:
ans.sh
#!/usr/bin/awk -f
BEGIN { OFS = FS = "," }
NR > 1 {
if ( == "") = Name
if ( == "") = flavour
if ( == "") = country
Name =
flavour =
country =
}
{ 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
希望对您有所帮助。
我有一个文件,其中第一行是文件的 header,相应的值出现在后续行中。我想用第二行的值替换第三行逗号。所以我的第 3 行将包含第 2 行的值加上第 3 行的现有值。这个过程一直持续到我再次得到一行具有相似模式值的行,它应该被复制到后续行以产生类似第 3 行的结果。
编程语言: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
.
.
.
我为此创建了一个 awk
脚本:
ans.sh
#!/usr/bin/awk -f
BEGIN { OFS = FS = "," }
NR > 1 {
if ( == "") = Name
if ( == "") = flavour
if ( == "") = country
Name =
flavour =
country =
}
{ 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
希望对您有所帮助。