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