如何找到檔案名稱的第四個和第五個字元?

如何找到檔案名稱的第四個和第五個字元?
$ ls
abcmkde
ghemkde
vdecdde

例如,我只想列出僅包含 4 個和第 5 個字元的檔案名,並且僅包含一次單次匹配迭代(mkcd上面的範例中)。

有一堆具有不同名稱和不同第四個和第五個字元的檔案。

答案1

應用 Unix 哲學:每項工作一個工具,以及將它們組合在一起的 shell。共有三個職位:

  • 列出檔案名稱。除非您的檔案名稱包含不可列印的字符或控製字符,否則解析 的輸出ls是合理的。如果您只想列出某些文件,那麼您可以使用類似的東西

    printf '%s\n' *.ext
    

    每行列出一個名稱。

  • 提取檔案名稱中您感興趣的部分cut -b 4,5cut -c 4,5

  • 刪除重複項。最簡單的方法是sort -u(這也會對零件進行排序)。

管道一起加入這些計劃。結果是

ls | cut -b 4,5 | sort -u

答案2

ksh93, bash,zshmksh:

for file in *; do
    printf '%s\n' "${file:3:2}"
done | sort -u

相關內容