Files

將文件名替換為包含文件夾名稱 (csh)

  • March 8, 2017

我和這張海報有完全相同的問題,但是我使用的是 csh。

我可以得到我想要的文件名

set x = V_181_V_d_2_um_phi_4.50_eV_tOn_0.5_ns/SteadyState_out.e
cat "`echo $x | cut -d "/" -f1`.e"
   cat: V_181_V_d_2_um_phi_4.50_eV_tOn_0.5_ns.e: No such file or directory

但我不知道如何用那個字元串做任何事情。有什麼建議嗎?

我的第一條建議是將你的外殼換成別的東西。也就是說,這應該做你想要的:

set file = "V_181_V_d_2_um_phi_4.50_eV_tOn_0.5_ns/SteadyState_out.e"
set newname = "`echo $file | cut -d "/" -f1`.e"
mv "$file" "$newname"

這不會將文件保存在其原始目錄中。我不知道這是否是您想要的,因為您實際上並沒有解釋您要實現的目標,但是如果您希望文件保留在其原始目錄中,您可以這樣做:

set dirname = "V_181_V_d_2_um_phi_4.50_eV_tOn_0.5_ns"
set file = "SteadyState_out.e"
set newname = "`echo $dirname | cut -d "/" -f1`.e"
mv "$dirname"/"$file" "$dirname"/"$newname"

引用自:https://unix.stackexchange.com/questions/350008