하나의 변수에 파일 디렉터리 할당

하나의 변수에 파일 디렉터리 할당

나는 거의 400개의 파일이 있는 디렉토리를 가지고 있고 내가 작성 중인 bash 스크립트의 단일 변수에 모든 .txt 파일을 할당하고 싶습니다. 그러나 나는 그것을 어떻게 해야 할지 잘 모르겠습니다. 나는 해당 파일의 내용이 아니라 파일 이름 자체에만 관심이 있습니다.

답변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. 또한 이 찾기는 재귀적인 찾기이므로 인수를 변경하여 한 폴더 내에서만 검색하도록 할 수 있습니다.

관련 정보