bash 中的唯一字符串

bash 中的唯一字符串

我有一个数组

array=(src/ucode/pkgs/get_ch.c  qa/tests/ucode/chktest.pl  src/ucode/pkgs/get_ch.c src/profile/settings.txt  src/ucode/pkgs/main_pf.c  src/ucode/pkgs/get_ch.c src/ucode/pkgs/main_ch.c src/ucode/pkgs/main_pf.c)

我需要从该数组中获取唯一的文件

src/ucode/pkgs/get_ch.c  qa/tests/ucode/chktest.pl src/profile/settings.txt  src/ucode/pkgs/main_pf.c  src/ucode/pkgs/main_ch.c

基本上我需要从数组中删除重复的字符串

答案1

你可以尝试

#!/bin/bash

array=(src/ucode/pkgs/get_ch.c
qa/tests/ucode/chktest.pl
src/ucode/pkgs/get_ch.c
src/profile/settings.txt
src/ucode/pkgs/main_pf.c
src/ucode/pkgs/get_ch.c
src/ucode/pkgs/main_ch.c
src/ucode/pkgs/main_pf.c)

sorted_array=( $(printf "%s\n" "${array[@]}" | sort | uniq) )

# dump the sorted array to check its contents
printf "%s\n" "${sorted_array[@]}"

输出

qa/tests/ucode/chktest.pl
src/profile/settings.txt
src/ucode/pkgs/get_ch.c
src/ucode/pkgs/main_ch.c
src/ucode/pkgs/main_pf.c

相关内容