変数にファイルディレクトリを割り当てる

変数にファイルディレクトリを割り当てる

私はほぼ400個のファイルがあるディレクトリを持っていて、私が書いているbashスクリプトの単一変数にすべての.txtファイルを割り当てたいと思います。しかし、どうすればいいのかわかりません。私はそのファイルの内容ではなく、ファイル名自体にのみ興味があります。

答え1

名前が必要な場合は、配列に割り当てることをお勧めします。

names=( *.txt )

コンテンツが必要な場合

contents="$( cat *.txt )"

答え2

こんなことをしてみてください。この1行のコードは、フォルダ内の.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どちらの例も、内容ではなくファイル拡張子を見つけます。また、このクエリは再帰的であるため、フォルダ内でのみ検索するようにパラメータを変更できます。

関連情報