텍스트 파일에서 폴더 이름 가져오기

텍스트 파일에서 폴더 이름 가져오기

텍스트 파일에 파일 목록이 있습니다. 이 텍스트 파일에서 폴더 이름만 얻으려면 어떻게 해야 합니까? (동일한 이름의 폴더는 한번만 작성됩니다)

/lib/i386-linux-gnu/libwrap.so.0.7.6     
/lib/i386-linux-gnu/libbsd.so.0  
/lib/i386-linux-gnu/libdbus-1.so.3.19.4  
/lib/i386-linux-gnu/libexpat.so.1.6.7   
/usr/bin/rakconvert  
/usr/bin/python-config  
/usr/bin/winecpp  
/usr/bin/wine  
/usr/bin/regedit  
/usr/bin/pycompile  
/usr/bin/msiexec  

이 파일의 내용입니다 1.txt. 출력을 원하는 경우:

/lib/i386-linux-gnu/  
/usr/bin

내가 수행한 모든 검색은 파일 목록을 파일로 보내는 것에 관한 것입니다. "고양이, dirname" 등 나는 많은 코드를 사용하기 때문에 여기에 추가하지 않았습니다.

죄송합니다. 제 질문이 명확하지 않았습니다. 감사해요

답변1

이것을 순전히 텍스트 처리 문제로 취급하면(즉, Unix 파일 이름에 개행 문자가 포함될 수 있다는 사실을 무시하고, 이것이 정상임을 알지 않는 한 일반적으로 텍스트 파일에 경로 이름을 저장하지 않는 이유입니다), 우리는 마지막 문자 뒤의 모든 것을 제거할 수 있습니다 /. 모든 라인을 통해 고유한 결과를 얻을 수 있습니다.

$ sed 's,/[^/]*$,,' 1.txt | sort -u
/lib/i386-linux-gnu
/usr/bin

sed표현식 s,/[^/]*$,,( 로 쓸 수도 있음 ) 은 슬래시와 그 뒤에 슬래시가 아닌 문자가 올 때까지(줄 끝까지) s/\/[^/]*$//일치하는 모든 항목을 제거합니다 ./[^/]*$

마지막으로 sort -u결과는 고유한 항목만 유지하면서 정렬됩니다. 데이터가 이미 정렬되어 있는 경우 uniq이를 사용할 수 있습니다.

관련 정보