希望打印以遞增計數,然後打印第1列中的唯一值的計數第2列&第3列...列NF和列$ 0 和如果單詞僅出現在第1列的一次,則想要將備註打印爲「否」作爲重複標記 ,並且如果該單詞出現多於第1列的一次,則打算將重複打印爲「是」的備註標誌awk打印每列中唯一值出現的增量計數
看起來像這樣
awk -F"," '{OFS=","; if (word == $1) { counter++ } else { counter = 1; word = $1 }; print $0 ",", "Yes/No", counter }'
例如,我試圖檢查字段$ 1(水果名稱)中是否有任何重複的信息。 在Name字段下,「Apple」出現三次,「Orange」出現兩次,「Mango」出現一次。 因此,如果任何單詞不重複超過一次consieder爲「Name_Dup =否」重複和出現的計數是「Name_Counter = 1」(即芒果)
其中「Apple」出現3次,所以它是當出現第一次計數時,重複/重複的標記爲「是」,其爲「Name_Dup =是」且Name_Counter = 1「, 當它第二次出現時」Name_Dup =是「 = Yes」和Name_Counter = 3
然後需要檢查每個列$ 2,$ 3 ...直到$ NF與$ 0 ..
我的實際輸入文件沒有排序的任意順序,沒有以前是場像10個字段一樣變化, 12個字段和15個字段等
Input.csv
Name,Amount,Dept
Apple,10,eee
Orange,20,csc
Apple,30,mec
Mango,40,sss
Apple,10,eee
Orange,10,csc
所需的輸出
Name,Amount,Dept,Name_Dup,Name_Counter,Amount_Dup,Amount_Counter,Dept_Dup,Dept_Counter,EntireLine_Dup,EntireLine_Counter
Apple,10,eee,Yes,1,Yes,1,Yes,1,Yes,1
Orange,20,csc,Yes,1,No,1,Yes,1,No,1
Apple,30,mec,Yes,2,No,1,No,1,No,1
Mango,40,sss,No,1,No,1,No,1,No,1
Apple,10,eee,Yes,3,Yes,2,Yes,2,Yes,2
Orange,10,csc,Yes,2,Yes,3,Yes,2,No,1
例如,請參考以下參考步驟。
步驟#1 - 1場$檢查和輸出
Name,Name_Dup,Name_Counter
Apple,Yes,1
Orange,Yes,1
Apple,Yes,2
Mango,No,1
Apple,Yes,3
Orange,Yes,2
步驟#2 - 字段$ 2個校驗和輸出
Amount,Amount_Dup,Amount_Counter
10,Yes,1
20,No,1
30,No,1
40,No,1
10,Yes,2
10,Yes,3
步驟#3 - 字段$ 3檢查和輸出
Dept,Dept_Dup,Dept_Counter
eee,Yes,1
csc,Yes,1
mec,No,1
sss,No,1
eee,Yes,2
csc,Yes,2
步驟#4場$ 0檢查,$ 1 & $ 2 & $ 3人組合和輸出
"Name,Amount,Dept",EntireLine_Dup,EntireLine_Counter
"Apple,10,eee",Yes,1
"Orange,20,csc",No,1
"Apple,30,mec",No,1
"Mango,40,sss",No,1
"Apple,10,eee",Yes,2
"Orange,10,csc",No,1
一點也不清楚,能否請您添加關於您的預期輸出的更多解釋,因爲在Input_file中,即使他們的計數超過1,字段也很少有NO。 – RavinderSingh13
RavinderSingh13,我已經添加了步驟#1到步驟#4,請檢查並讓我們知道您是否需要任何其他詳細信息 – VNA
對不起,說但不清楚,我們可以有條件,當你需要的時候,當你需要1等等請等這裏呢? – RavinderSingh13