Awk

刪除 CSV 文件中重複的第一個欄位

  • July 31, 2020

我嘗試從 CSV 文件中刪除第一列的相同值的重複而不更改其他單元格內容和對齊方式(在其他列中)。

我的文本:

ACCIDENT EP 4 STEM PERCUS,,         42:30,         43:04,          0:34
ACCIDENT EP 4 STEM PERCUS,,         43:04,         43:16,          0:11
AICHA 1 COMPLET DECOUPE,,         27:38,         28:42,          1:03
AICHA 2 COMPLET MIX 1,,         23:21,         24:02,          0:40 

我想

ACCIDENT EP 4 STEM PERCUS,,         42:30,         43:04,          0:34
                        ,,         43:04,         43:16,          0:11
AICHA 1 COMPLET DECOUPE,,         27:38,         28:42,          1:03  
AICHA 2 COMPLET MIX 1,,         23:21,         24:02,          0:40 

抱歉,我已經搜尋過了,沒有結果。

這是一個很長的列表,有很多重複的單元格。我想只保留第一個。我在mac上。

$ awk 'BEGIN{FS=OFS=","} {if ($1==p) gsub(/./," ",$1); else p=$1} 1' file
ACCIDENT EP 4 STEM PERCUS,,         42:30,         43:04,          0:34
                        ,,         43:04,         43:16,          0:11
AICHA 1 COMPLET DECOUPE,,         27:38,         28:42,          1:03
AICHA 2 COMPLET MIX 1,,         23:21,         24:02,          0:40
$ awk '$1!=last { last=$1; print; next; }; { $1=" "; print; }' input

A b c
 E R
 F T
B F T
 G 5
C T 5
 H 4

引用自:https://unix.stackexchange.com/questions/601128