[완료]쉘에서 디렉토리의 화일명의 리스트를 만들고 싶습니다.
안녕하세요.
지금 쉘을 만들고 있는데요....
두개의 디렉토리의 내용을 비교하기 위해서 양쪽의 화일리스트를 만들려고 합니다.
기본적으로 두 디렉토리를 같아야 합니다.
그래서, 두개의 디렉토리의 내용을 리스트로 만들려고 합니다.
(현재, ls명령을 이용해서 여러가지 해 보았는데...잘 되지 않아서 도움을 청합니다.)
현재 ls -R을 사용하면 아래와 같이 출력됩니다.
-------------------------------------------
park@ikrp100[85]: ls -R
.:
db_test.tar log/ old/ pg0225.tar src0226.tar
ini/ new/ ope.tar release.tar.gz tmp/
./ini:
release_pg.ini
./log:
release.log
./new:
OPE/ sample4 sql/ src_test.tar
./new/OPE:
com/
./new/OPE/com:
wsgnmqp/
./new/OPE/com/wsgnmqp:
wsgjmqpa.com wsgjmqpb.com
./new/sql:
sql/
./new/sql/sql:
amend_del_touroku.sql mk_add.sql mk_add_yield.sql sample1.cc sample2.ini sample3.ini
./old:
./tmp:
target_action_01pg_OPE_sample.ini target_file_01pg_OPE_sample_amend.ini
target_dir_01pg_OPE_sample_add.ini target_file_01pg_OPE_sample_del.ini
target_file_01pg_OPE_sample_add.ini target_host_01pg.ini
park@ikrp100[86]:
-------------------------------------------
그런데 저 정보를 아래와 같이 출력하고 싶습니다.
-------------------------------------------
.:db_test.tar
.:pg0225.tar
.:src0226.tar
.:ope.tar
.:release.tar.gz
./ini:release_pg.ini
./log:release.log
./new:sample4
./new:src_test.tar
./new/OPE/com/wsgnmqp:wsgjmqpa.com
./new/OPE/com/wsgnmqp:wsgjmqpb.com
./new/sql/sql:amend_del_touroku.sql
./new/sql/sql:mk_add.sql
./new/sql/sql:mk_add_yield.sql
./new/sql/sql:sample1.cc
./new/sql/sql:sample2.ini
./new/sql/sql:sample3.ini
./tmp:target_action_01pg_OPE_sample.ini
./tmp:target_file_01pg_OPE_sample_amend.ini
./tmp:target_dir_01pg_OPE_sample_add.ini
./tmp:target_file_01pg_OPE_sample_del.ini
./tmp:target_file_01pg_OPE_sample_add.ini
./tmp:target_host_01pg.ini
-------------------------------------------
즉, 각 화일마다 현 디렉토리를 기준으로 모두 출력하고 싶습니다.
디렉토리가 비어 있다면 출력하지 않아두 되구요.
설명한다고 했는데 잘 되었는지 모르겠습니다.
언듯 듣기로 "와일드카드"인가를 쓰면 될거라고 하는데....
잘 몰라서 이해를 못하고 있습니다.
그래서 현재 ls명령어만 이렇게 저렇게 해보고 있는데....
쉘명령어도 좋고, AWK, SED도 좋습니다.
그럼, 도움 부탁드리겠습니다.
즐거운 하루 되세요~
=================================================
find를 이용해서 많이 해결하였습니다.
그런데, find해서 나온 값의
맨 앞부분에 붙은 .을 제거하고 싶은데요....
어떻게 하면 가능할까요?
./aaa/bbb/ccc/ddd/eee.exe 를
/aaa/bbb/ccc/ddd/eee.exe 로 하고 싶습니다.
----------------------------------
echo ./aaa/bbb/ccc/ddd/eee.exe | sed 's%.%%g' 하면
결과가 널로 나오고요.
echo ./aaa/bbb/ccc/ddd/eee.exe | sed 's%./%/%g' 하면
결과가 /aa/bb/cc/dd/eee.exe 로 나옵니다.(aaa,bbb,ccc,ddd가 aa,bb,cc,dd로)
echo ./aaa/bbb/ccc/ddd/eee.exe | awk -F"." '{print $2}' 하면
결과가 /aaa/bbb/ccc/ddd/eee 로 나옵니다.
echo ./aaa/bbb/ccc/ddd/eee.exe | awk -F"./" '{print $2}' 하면
결과가 aa 로 나옵니다.
그럼, 부탁드리겠습니다.
find > list.txt emerge
find > list.txt
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
https://xenosi.de/
송효진님~ 답변
송효진님~
답변 감사드립니다.
----------------------------------
그런데, find해서 나온 값의
맨 앞부분에 붙은 .을 제거하고 싶은데요....
어떻게 하면 가능할까요?
./aaa/bbb/ccc/ddd/eee.exe 를
/aaa/bbb/ccc/ddd/eee.exe 로 하고 싶습니다.
----------------------------------
echo ./aaa/bbb/ccc/ddd/eee.exe | sed 's%.%%g' 하면
결과가 널로 나오고요.
echo ./aaa/bbb/ccc/ddd/eee.exe | sed 's%./%/%g' 하면
결과가 /aa/bb/cc/dd/eee.exe 로 나옵니다.(aaa,bbb,ccc,ddd가 aa,bb,cc,dd로)
echo ./aaa/bbb/ccc/ddd/eee.exe | awk -F"." '{print $2}' 하면
결과가 /aaa/bbb/ccc/ddd/eee 로 나옵니다.
echo ./aaa/bbb/ccc/ddd/eee.exe | awk -F"./" '{print $2}' 하면
결과가 aa 로 나옵니다.
그럼, 부탁드리겠습니다.
■■■■■■■
http://leo.cbnu.ac.kr/
Dream as if you'll live forever, live as if you'll die tomorrow.
■■■■■■■
http://leo.cbnu.ac.kr/
Dream as if you'll live forever, live as if you'll die tomorrow.
[code]
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
M.W.Park님 감사합니다.
M.W.Park님
감사합니다.
잘 해결되었습니다.
즐거운 금요일과 주말되세요~
■■■■■■■
http://leo.cbnu.ac.kr/
Dream as if you'll live forever, live as if you'll die tomorrow.
■■■■■■■
http://leo.cbnu.ac.kr/
Dream as if you'll live forever, live as if you'll die tomorrow.
댓글 달기