Linux
循環文件並使用第一列創建目錄,並使用其他列創建 wget
我有一個像這樣的多行文件-
GSE55555 ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE55nnn/GSE55555/suppl/* ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE55nnn/GSE55555/matrix/* GSE11111 ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE11nnn/GSE11111/suppl/* ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE11nnn/GSE11111/matrix/*
我想使用第 1 列創建目錄,並將從第 2 列和第 3 列下載的文件儲存在該目錄中。
我怎樣才能在unix中進行呢?
複雜**
bash
+wget
**解決方案:while read -r d f1 f2; do mkdir -p "$d" && cd "$d" wget --no-verbose -nd -np -r --level=1 "$f1" wget --no-verbose -nd -np -r --level=1 "$f2" cd $OLDPWD done <inputfile
詳情:
read -r d f1 f2
- 從每行讀取 3 個欄位inputfile
到各自的變數d
(目錄名)、f1
(文件路徑 1)和f2
(文件路徑 2)mkdir -p "$d" && cd "$d
- 如果不存在則創建新目錄並將目前工作目錄更改為該文件夾wget --no-verbose -nd -np -r --level=1 "$f1"
- 從文件路徑下載層次結構第一級 (--level=1
)的所有文件$f1
cd $OLDPWD
- 返回上一個工作目錄查看結果:
$ tree GSE* GSE11111 ├── filelist.txt ├── GSE11111_RAW.tar └── GSE11111_series_matrix.txt.gz GSE55555 ├── filelist.txt ├── GSE55555_RAW.tar ├── GSE55555_repset.17402833.enrichment.clusters.gff3.gz └── GSE55555_series_matrix.txt.gz 0 directories, 7 files