Jika saya memiliki string “1 2 3 2 1” – atau array [1,2,3,2,1] – bagaimana saya bisa memilih nilai unik, mis.
"1 2 3 2 1" produces "1 2 3"
atau
[1,2,3,2,1] produces [1,2,3]
Mirip dengan uniq tetapi uniq tampaknya bekerja di seluruh baris, bukan pola dalam satu baris…
Jawaban yang Diterima:
Dengan GNU awk
(ini juga mempertahankan pesanan asli)
printf '%sn' "1 2 3 2 1" | awk -v RS='[[:space:]]+' '!a[$0]++{printf "%s%s", $0, RT}'
1 2 3
Untuk read
menjadi bash
larik
read -ra arr<<<$(printf '%sn' "1 2 3 2 1" |
awk -v RS='[[:space:]]+' '!a[$0]++{printf "%s%s", $0, RT}')
printf "%sn" "${arr[@]}"
1
2
3