Tôi cần đổi tên 45 tệp và tôi không muốn làm từng tệp một. Đây là các tên tệp:Đổi tên tệp bội số bằng vòng lặp bash
chr10.fasta chr13_random.fasta chr17.fasta chr1.fasta chr22_random.fasta chr4_random.fasta chr7_random.fasta chrX.fasta
chr10_random.fasta chr14.fasta chr17_random.fasta chr1_random.fasta chr2.fasta chr5.fasta chr8.fasta chrX_random.fasta
chr11.fasta chr15.fasta chr18.fasta chr20.fasta chr2_random.fasta chr5_random.fasta chr8_random.fasta chrY.fasta
chr11_random.fasta chr15_random.fasta chr18_random.fasta chr21.fasta chr3.fasta chr6.fasta chr9.fasta
chr12.fasta chr16.fasta chr19.fasta chr21_random.fasta chr3_random.fasta chr6_random.fasta chr9_random.fasta
chr13.fasta chr16_random.fasta chr19_random.fasta chr22.fasta chr4.fasta chr7.fasta chrM.fasta
Tôi cần thay đổi phần mở rộng ".fasta" thành ".fa". Tôi đang cố gắng viết một tập lệnh bash để làm điều đó:
for i in $(ls chr*)
do
NEWNAME = `echo $i | sed 's/sta//g'`
mv $i $NEWNAME
done
Nhưng nó không hoạt động. Bạn có thể cho tôi biết lý do, hoặc đưa ra một giải pháp nhanh khác?
Cảm ơn!
tôi không nên đã gỡ bỏ nhận xét của tôi, nhưng tôi thấy bạn đã trả lời ở trên. Cảm ơn. – nickd
đẹp, sử dụng '/%' và '--' cho' mv'. Tôi có lẽ sẽ bao gồm phần mở rộng trong vòng lặp 'for',' cho tôi trong chr * .fasta' – c00kiemon5ter
Cảm ơn câu trả lời hoàn chỉnh của bạn! – Geparada