我想使用 AWK 来获取以下电子表格,其中名字和姓氏在一列中:
Peter Griffin, 31 Spooner St, Quahog
Homer Simpson, 732 Evergreen Terr, Springfield
Fred Flintstone, 301 Cobblestone Way, Bedrock
Run Code Online (Sandbox Code Playgroud)
并输出到一个新的电子表格,其中名字和姓氏有自己的列:
Peter, Griffin, 31 Spooner St, Quahog
Homer, Simpson, 732 Evergreen Terr, Springfield
Fred, Flintstone, 301 Cobblestone Way, Bedrock
Run Code Online (Sandbox Code Playgroud)
我尝试过动态更改字段分隔符,例如:
awk '{print $1 "," $2} {FS=","} {print $3} {FS=" "}' spreadsheet.csv
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有那样工作,而且我弄得一团糟。这可以使用 AWK 吗?
,每当在第一个基于字段中找到空格时,只需添加一个逗号:
awk 'BEGIN {FS=OFS=","} {sub(/ /, ", ", $1)}1' file
# ^ ^^
# find a space... ... replace it with , plus space
Run Code Online (Sandbox Code Playgroud)
与您的文件:
$ awk 'BEGIN {FS=OFS=","} {sub(/ /, ", ", $1)}1' file
Peter, Griffin, 31 Spooner St, Quahog
Homer, Simpson, 732 Evergreen Terr, Springfield
Fred, Flintstone, 301 Cobblestone Way, Bedrock
Run Code Online (Sandbox Code Playgroud)
这使用该函数sub()在第一个字段中执行替换。