我對shell腳本的世界比較陌生,因此希望這不會太困難。我有一個文件(dirlist)與目錄列表。我想與路徑的每個文件 在循環中命名awk輸出
- 貓「dirlist」使用的程序調用samtools從dirlist
- 用awk修改文件子集上一個變量chr17的samtools輸出
- 輸出寫入到使用該目錄的第8場一個文件,從「dirlist」命名
- 在dirlist中列出的所有文件,這樣做
我想我在這裏有所有的作品。項目1-3工作正常,但循環只是命名文件「回聲」。
for i in `cat dirlist`; do samtools depth $i | awk '$1 == "chr17" {print $0}' echo $i | awk -F'[/]' '{print $8}'; done
任何幫助,將不勝感激
[不要讀與行' for'](http://mywiki.wooledge.org/DontReadLinesWithFor)。相反,請參閱[BashFAQ#1](http://mywiki.wooledge.org/BashFAQ/001)以獲取相關最佳做法。 –
我強烈建議通過http://shellcheck.net/運行你的代碼並修復它發現的內容。即使沒有滾動查看完整的代碼,也可以看到一些明顯的引用錯誤。 –
一般來說,如果awk能夠只處理一個awk處理副本,那麼使用awk比bash內置功能要好得多* awk在運行時比bash快得多,效率更高,但像每一個外部過程都需要時間來旋轉起來。當你開始運行一大堆小程序時,事情會變得混亂。 –