我有一個簡單的(雖然對我來說不簡單)的問題。如何創建包含文件名前綴的目錄?
比方說,我有a.txt,b.txt,c.txt。 經過重複處理後,我想將結果保存在不同的目錄中,如a_result/a_result.txt,b_result/b_result.txt,c_result/c_result.txt。
我該如何使用shell腳本來做到這一點?
謝謝!
我有一個簡單的(雖然對我來說不簡單)的問題。如何創建包含文件名前綴的目錄?
比方說,我有a.txt,b.txt,c.txt。 經過重複處理後,我想將結果保存在不同的目錄中,如a_result/a_result.txt,b_result/b_result.txt,c_result/c_result.txt。
我該如何使用shell腳本來做到這一點?
謝謝!
您可以使用參數擴展的${param%word}
形式從輸入文件名中去除.txt
並創建相應的目錄和輸出文件名。
for input in a.txt b.txt c.txt; do
stem=${input%.txt}
mkdir -p "${stem}_result"
some_command "$input" > "${stem}_result/${stem}_result.txt"
done
+1,這是有道理的,如果你正在做一些類似'用於輸入* .txt'的東西,但是如果其中一個實際上是拼寫出來的文件,那麼可能更簡單一些。 do ...' – 2014-09-23 04:30:59
如何用'mv'替換'some_command'行$ input「」$ {stem} _result/$ {stem} _result.txt「' – 2014-09-23 05:54:56
謝謝,夥計們!切普納的命令爲我工作。如果我想同時使用兩個或多個文件,如'some_command a_1.txt a_2.txt',並保存在一個目錄中,我該怎麼辦? – mbk0asis 2014-09-23 06:39:40
你也可以做
for let in a b c; do
mkdir -p "$let"_result
some_command "$let".txt > "$let"_result/"$let"_result.txt
done
你知道['基名(1)'](http://linux.die.net/man/1/basename)? – 2014-09-23 02:55:36