我有一个使用数组作业的管道,需要更改某些步骤的输入数量。我考虑进行测试,uniq
因为我的文件夹中唯一改变的部分是最后四个字符(示例中的hap部分)。因此,我的所有路径看起来都像这样:
/mnt/nvme/user/something1/hap1
/mnt/nvme/user/something1/hap2
/mnt/nvme/user/something2/hap1
/mnt/nvme/user/something2/hap2
我正在做的事情如下:
DIR=( "/mnt/nvme/ungaro/something1/hap1" "/mnt/nvme/ungaro/something1/hap2" "/mnt/nvme/ungaro/something2/hap1" "/mnt/nvme/ungaro/something2/hap2" )
for dir in "${DIR[@]}"; do echo $dir | sed 's#/hap[0-9]##' | uniq; done
但是,在删除每个元素的hap部分后,结果输出始终会显示变量中的所有元素,而不会折叠重复的行。
我可能遗漏了什么,可能是强制for
打印所有行。如果是这样,有没有办法在一行命令中达到所需的结果?