我的應用程式目錄中有一個檔案ABC_123.csv,我想顯示它的全名。我找到了兩種方法(見下面的代碼片段):一種使用??? 另一個在所需文本ABC_的末尾使用星號。
但是,兩種方式也都顯示路徑和名稱。以下兩個命令都以這種格式生成結果:path name。我只需要名字。是否有任何特殊字符(如 ? 或 *)僅顯示名稱檔案?
[input]$ ls /usr/opt/app/ABC_???.csv
[output] /usr/opt/app/ABC_123.csv
[input]$ ls /usr/opt/app/ABC_*.csv
[output] /usr/opt/app/ABC_123.csv
我不能做到這一點:
[input]$ cd /usr/opt/app
[input]$ ls ABC_???.csv
[output] ABC_123.csv
所需輸出:
[input]$ ls /usr/opt/app/ABC_(some-special-character).csv
[output] ABC_123.csv
[已編輯]basename正在作業,但是,我想使用ls和來實作這一點some special character(如上面所需輸出中突出顯示的那樣)。有什么辦法嗎?
[input]$ basename /usr/opt/app/ABC_???.csv
[output] ABC_123.csv
uj5u.com熱心網友回復:
您可以使用
find /usr/opt/app/ -type f -name "ABC_*.csv" -exec basename '{}' \;
basename將隔離檔案名。find將在指定目錄中搜??索與提供的模式匹配的檔案。
uj5u.com熱心網友回復:
如果您僅限于ls,那么這可能會有所幫助。
file="$(echo /usr/opt/app/ABC_???.csv)"; echo "${file##*/}"
uj5u.com熱心網友回復:
將每個 csv 檔案通過管道傳輸到basename:
ls /usr/opt/app/ABC_*.csv | xargs basename -a
uj5u.com熱心網友回復:
不需要基名:
(cd /usr/opt/app/ && ls ABC_*.csv)
“我不能這樣做”是類似的,但沒有解釋原因,所以也許單線是可行的。在子 shell 中執行可防止當前目錄更改。
不 - 沒有可以在那里使用的特殊字符。這是 globbing:https ://en.wikipedia.org/wiki/Glob_(programming )
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331201.html
