我有一個bash腳本,其中有幾個qsubs。他們中的每一個都在等待開始之前完成一個優秀的qsub。awk內部的qsub
我的第一個qsub包含將某個目錄中的文件發送到perl程序,並將outfiles打印在新目錄中。最後,我用我所有的工作名稱迴應數組。這個腳本以滿意的方式工作。
mkdir -p /perl_files_dir
for ID_FILES in `ls Infiles_dir/*.txt`;
do
JOB_ID=`echo "perl perl_scirpt.pl $ID_FILES" | qsub -j oe `
JOB_ID_ARRAY="${JOB_ID_ARRAY}:$JOB_ID"
done
echo $JOB_ID_ARRAY
我的第二個的qsub是爲了在新OUTFILE與我的perl腳本做我以前所有的文件進行排序,畢竟這些工作完成後(約100個就業機會)與depend=afterany
啓動。再次,這部分工作正常。
SORT_JOB=`echo "sort -m -n perl_files_dir/*.txt >>sorted_file.txt" | qsub -j oe -W depend=afterany$JOB_ID_ARRAY`
SORT_ARRAY="${SORT_ARRAY}:$SORT_JOB"
我的問題是,在我的排序文件,我有我想刪除(2-6)幾列,所以我想出了利用awk
最後一行通過管道輸送到sed
與另一depend=afterany
SED=`echo "awk '{\$2="";\$3="";\$4="";\$5="";\$6=""; print \$0}' sorted_file.txt \
| sed 's/ //g' >final_file.txt" | qsub -j oe -W depend=afterany$SORT_ARRAY`
最後一步創建final_file.txt
,但保留爲空。我在回聲之前添加了SED=
,因爲否則會給我Command not found
。
我嘗試沒有管道,所以它只會打印一切。不幸的是,它什麼都不打 我認爲它沒有打開我的排序文件,這就是爲什麼我的sed後我的最終文件是空的。如果是這樣的話,爲什麼awk不會讀它?
在我的腳本中,我使用變量來定義我的目錄和文件(使用正確的路徑)。我知道我的問題不在於查找我的文件或目錄,因爲它們在開始時被完全定義並在整個腳本中使用。我試圖寫出整個路徑而不是一個變量,並得到相同的結果。
awk沒有看到反斜槓。問題實際上是它沒有看到''「'。 – Gilles