將檔案目錄分配給一個變數

將檔案目錄分配給一個變數

我有一個包含近 400 個檔案的目錄,我想將所有 .txt 檔案指派給我正在編寫的 bash 腳本中的單一變數。但是我不太確定該怎麼做。我純粹對文件名本身感興趣,而不是所述文件的內容。

答案1

如果您想要這些名稱,最好將它們指派給一個陣列。

names=( *.txt )

如果你想要內容的話

contents="$( cat *.txt )"

答案2

做這樣的事情。此單行程式碼為資料夾.txt中的所有檔案產生一個陣列/root/tmpdir

[root@localhost ~]# export LIST=() ; for file in `find /root/tmpdir -name *.txt -exec readlink -e '{}' \;` ; do LIST+=($file) ; done
[root@localhost ~]# echo ${LIST[*]}
/root/tmpdir/newdir/file.txt /root/tmpdir/file.txt
[root@localhost ~]#

或者,您可以建立一個包含用 分隔的檔案名稱的變數,

[root@localhost ~]# export LIST; for file in `find /root/tmpdir -name *.txt -exec readlink -e '{}' \;` ; do LIST=$LIST$file, ; done
[root@localhost ~]# echo $LIST
/root/tmpdir/newdir/file.txt,/root/tmpdir/file.txt,

聚苯乙烯

這兩個範例都會尋找檔案副檔名.txt而不是內容。另外,此查找是遞歸查找,您可以更改參數以使其僅在一個資料夾內搜尋。

相關內容