Shell-Script
在條件和輸出重定向文件中帶有變數的 awk
我希望獲得有關此命令的一些幫助,因為我在文件中找不到任何可以涵蓋我想要的所有內容的內容。
我有一些全域變數,所以我寧願將它們排除在 awk 之外。
chr="chr10" inpfile="exome.bed" outfile="exons_chr.bed" -> which should be composed according to chr, so: "exons_" $chr ".bed"
我想以一般形式應用 awk,這樣,對於使用者輸入的任何“chr”和任何“infile”,我都可以有一個單行命令來根據以下條件創建輸出:
awk '$1=="$chr" $infile > "exons_"$chr".bed"
所以,我也想每次都編寫輸出文件名。當我使用特定值執行它時,它可以工作。我怎樣才能使它與變數一起工作,更通用,以便我可以在腳本中使用它?
有沒有辦法在更多行中做到這一點,比如:
awk ' { if ($1=="$chr") -> copy lines to outfile }' infile
你有多種選擇…
要將 shell 變數傳遞給 awk 並在字元串比較中使用它們並讓 shell 創建文件:
awk -v chr="$chr" '$1==chr' "$infile" > "exons_${chr}.bed"
另外讓 awk 將輸出輸出到文件中:
awk -v chr="$chr" '$1==chr { print > "exons_" chr ".bed" }' "$infile"