Files
如何從 list.txt 中刪除文件並使用萬用字元?
嘗試使用標題列表和萬用字元刪除文件。文件的標題相同,但結尾不同。不知道如何在那裡獲得萬用字元。
我試圖從 NCBI 下載一些 SRA 文件並遇到下載問題。未正確下載的文件創建了 file1.fastq 和 file1.sra.cache(等等,用於 file2、file3 等…) 正確下載的文件給了我 file.fastq 和 file.sra.cache,所以我的下載看起來像這樣:
file1.fastq file1.sra file2.fastq file2.sra.cache file3.fastq file3.sra.cache
其中 file1 是成功下載,但不是 file2 或 file3。我想刪除與 file2 和 file3 關聯的所有文件。
我弄清楚了哪些文件沒有正確下載
ls *.sra.cache
。我現在有一個錯誤文件頭的列表(例如,file2、file3、…;所以只是開始部分)。我怎樣才能輸入文件名列表並添加萬用字元來刪除它們?我想用萬用字元製作一個文件名列表,比如
file2* file3*
並做類似的事情
cat list.txt | xargs rm
,但我不知道如何讓萬用字元在那里工作。*
如果我將它放入列表本身,Unix 認為它是文件名的一部分。
無需使用單獨的文件列表等,您可以使用簡單的
for
循環,例如:for f in *.sra.cache; do rm -- "${f%sra.cache}"* done
${f%sra.cache}
從文件名中刪除sra.cache
副檔名。
與
zsh
:rm -f -- *.sra.cache(e['reply=($REPLY $REPLY:r:r.fastq)'])
這將刪除每個文件的
.sra.cache
相應文件。.fastq``*.sra.cache
$var:r
在 csh / vim 中為您提供 like 的r
oot 名稱(刪除了一個副檔名)。$var``$var