簡體   English   中英

在Shell Script Linux中重命名文件

[英]Renaming files in Shell Script Linux

我想重命名從以下腳本下載的文件:

exec < input_list.txt
while read line
do
get $line
wget ftp://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/$2/$4
# Rename $4
mv $4 $1"_"$3".bam"
done

輸入文件(input_list.txt)由制表符分隔,並包含四列。 第一個是$ 1 =名稱,$ 2 = wget地址,$ 3 =因數,$ 4是文件名。

A549    wgEncodeBroadHistone    H2azDex100nm    wgEncodeBroadHistoneA549H2azDex100nmAlnRep1.bam

我想將$ 4(已下載的文件)重命名為較短的文件名,該文件名僅包含相應的$ 1​​和$ 3條款。 例如, wgEncodeBroadHistoneA549H2azDex100nmAlnRep1.bam變為A549_H2azDex100nm.bam

我玩過"但我不斷收到有關mv命令的錯誤消息,並且$4是一個錯誤的變量名。任何建議將不勝感激。

如果使用wget的-O選項,則無需重命名文件:

#!/bin/bash

[ -n "$BASH_VERSION" ] || {
    echo "You need Bash to run this script."
    exit 1
}

while IFS=$'\t' read -a INPUT; do
    wget -O "${INPUT[0]}_${INPUT[2]}.bam" "ftp://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/${INPUT[1]}/${INPUT[3]}"
done < input_list.txt

確保以UNIX文件格式(如script.sh保存文件,然后運行bash script.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM