我有一個文件(my_ID_file)的ID,每行一個ID,沒有其他多餘的白色空格。它是使用cut命令從另一個文件創建的。該文件看起來像這101行...Bash?陣列從readarray創建,但沒有手動聲明時出現
PA10
PA102
PA103
PA105
PA107
PA109
我想在for循環中使用這些ID來創建一個目錄結構。所以我用readarray功能,例如創建陣列......
readarray TIDs < my_ID_file
,然後用一個for循環這樣創建的目錄結構...
for T in "${TIDs[@]}"
do
mkdir "$T"_folder
done
這將產生命名的目錄。 ...
PA10?_folder
PA102?_folder
PA103?_folder
PA105?_folder
PA107?_folder
PA109?_folder
然而,如果我喜歡手動聲明數組....
TIDs=(PA10 PA102 PA103 PA105 PA107 PA109)
,然後運行for循環我得到這樣生成了正確的目錄結構....
PA10_folder
PA102_folder
PA103_folder
PA105_folder
PA107_folder
PA109_folder
在哪裏這些問號是從哪裏來的?我怎麼能從這樣的文件中聲明數組,而不會在隨後的數組中使用這個問號?
感謝
你肯定有在my_ID_file沒有不可見的字符?試試'cat -vet my_ID_file'使它們可見。 –
好的謝謝,我不能找到他們時,複製到文本wrangler,但使用這種方法$後綴每行,即PA10 $ PA102 $等我怎樣才能擺脫這些看不見的字符?這些是從我使用的切割方法創建的? –
'$'是正常的;這是'cat -e'顯示行結束的位置(所以你可以分辨「PA10 $'」和「PA10 $'」之間的區別)。 –