假設我有一個文件:替換爲「NA」重複變量用awk
1 Blue
2 Red
3 Yellow
4 Yellow
5 Yellow
6 Purple
7 Purple
8 Green
而且我想獲得以下文件,通過「NA」
1 Blue
2 Red
3 Yellow
4 NA
5 NA
6 Purple
7 NA
8 Green
假設我有一個文件:替換爲「NA」重複變量用awk
1 Blue
2 Red
3 Yellow
4 Yellow
5 Yellow
6 Purple
7 Purple
8 Green
而且我想獲得以下文件,通過「NA」
1 Blue
2 Red
3 Yellow
4 NA
5 NA
6 Purple
7 NA
8 Green
試試這個 -
$ awk 'a[$2]++{$2="NA"} 1' f
1 Blue
2 Red
3 Yellow
4 NA
5 NA
6 Purple
7 NA
8 Green
awk '{ if ($2 == COLOR) {print $1, "NA"} else {COLOR=$2; print $1, $2 } }'
$ awk '{print $1, ($2==p ? "NA" : $2); p=$2}' file
1 Blue
2 Red
3 Yellow
4 NA
5 NA
6 Purple
7 NA
8 Green
如果「重複」意味着連續重複此命令的工作 – haifzhan
對,這個問題有兩種可能的正確解決方案 - 如果重複的值是連續的,如問題所示,@ VipinKumar如果重複的值不連續或者它們是連續的,但你不在乎將所有的$ 2值加載到內存中。很可能Vipin是正確的方法,除非輸入文件很大,或者你不想替換斷開的重複值。 –