CSVを含むzipファイルがありますが、特定のフォルダに解凍し、ファイル名をzipファイル名と同じ名前に変更したいと思います。例えば。 、
youtube_videos.csv.zipというzipファイルがありますが、targetというフォルダに解凍し、そのフォルダのファイル名をyoutube-videos.csvに変更したいと思います。私はそれを持っていますが、次のように2行に分けられます。
unzip datasets/youtube_videos.csv.zip -d target
mv target/videos_data.csv target/youtube_videos.csv
使用できるライナーはありますか?
答え1
これは1行のオプションですが、ファイル名は変更しませんが、その内容を標準出力に出力します。このオプションでは機能しない可能性があります-d
(操作に失敗しました)。
$ unzip -p datasets/youtube_videos.csv.zip videos_data.csv > target/youtube_videos.csv
または、zipにファイルが1つしかない場合は、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
ディレクトリは事前に存在する必要があります。)