CSV가 포함된 zip 파일이 있는데 특정 폴더에 압축을 풀고 파일 이름을 zip 파일 이름과 동일한 이름으로 바꾸고 싶습니다. 예를 들어. ,
youtube_videos.csv.zip이라는 zip 파일이 있는데 target이라는 폴더에 압축을 풀고 해당 폴더의 파일 이름을 youtube-videos.csv로 바꾸고 싶습니다. 나는 그것을 가지고 있지만 다음과 같이 두 줄로 나뉩니다.
unzip datasets/youtube_videos.csv.zip -d target
mv target/videos_data.csv target/youtube_videos.csv
사용할 수 있는 라이너가 있나요?
답변1
이는 한 줄 옵션이지만 파일 이름을 바꾸지는 않지만 해당 내용을 표준 출력으로 인쇄합니다. 이 옵션에서는 작동 하지 않을 수도 있습니다 -d
(작동하지 못했습니다).
$ unzip -p datasets/youtube_videos.csv.zip videos_data.csv > target/youtube_videos.csv
또는 zip에 파일이 하나만 있는 경우 zip 파일 이름을 생략할 수 있습니다.
$ unzip -p datasets/youtube_videos.csv.zip > target/youtube_videos.csv
-p
매뉴얼에 따르면 이 옵션의 역할은 다음과 같습니다.
-p
파일을 파이프(stdout)로 추출합니다. 파일 데이터 외에는 아무것도 stdout으로 전송되지 않으며, 파일은 항상 저장된 그대로 바이너리 형식으로 추출됩니다(변환 없음).
답변2
libarchive 사용 bsdtar
:
bsdtar -xvvf youtube_videos.csv.zip -C target -'s/videos_data/youtube_videos/g'
아카이브는 target
디렉터리 로 추출되고 videos_data
s
아카이브 구성원의 이름으로 대체됩니다.youtube_videos
(이 target
디렉터리는 미리 존재해야 합니다.)