UST*_*ics 0 csv bash shell awk sed
下面是我的 .csv 文件的简要示例:
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","","N"
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","","N"
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","","N"
Run Code Online (Sandbox Code Playgroud)
在第三列(“Z”列)中,我缺少单元格(第 3,6 和 9 行)。最好使用 awk 或 sed,我想专门针对第 3 列,如果任何单元格为空白,我想删除整行。我的最终结果是:
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","Z","N"
"X","Y","Z","N"
Run Code Online (Sandbox Code Playgroud)
对于我的实际项目,下面是我的一个文件的精确副本 - https://github.com/drphillgood/riotapidata/blob/master/csv/game3.csv。您将在第 28 列 (participants__participantId) 中看到只有某些单元格有数据(最后一列 Participants__playerName 相同)。如果此列中的一个单元格为空,我想使用 .sh 脚本删除整行。最终文件会像这样 - https://github.com/drphillgood/riotapidata/blob/master/csv/game3_v2.csv
更简单的 AWK 命令:
awk -F , '$3 != "\"\"" {print}' inputfile > outputfile
Run Code Online (Sandbox Code Playgroud)
将字段分隔符设置为逗号并打印第三个字段仅包含 的每一行""
。
这不足以处理字段中包含逗号的 CSV 文件。它期望空字段由空引号组成。