我想在文本文件列表上執行bash腳本(使用for
循環,我猜),將stdout重定向到一個文件與stdin中的文本文件相同的路徑加上一個擴展名(例如.txt或.sam,或者只是在stdin路徑的末尾添加〜以使其不同)。對stdin上的文件列表執行bash命令並將stdout重定向到相關文件
回答
好吧,假設名單不會太長,你可以用
for i in `cat list`
do
# do stuff here
done
開始如果列表足夠長的太長的命令行的風險,有一段時間變種
cat list | while read i
do
# do stuff here
done
您可以使用basename(1)構造文件名來擺脫舊的擴展名後綴;對於說.TXT爲.bak使用
`basename .txt ${i}`.bak
您可以使用目錄名(1)
由於宏年初展開,你可以簡單地構建變量的命令行和擴大他們獲取路徑的一部分。其中op和NP是你的路徑名
command < $op > $np
有一個可愛的在線書,覆蓋此多的bash Advanced Scripting Guide。
http://mywiki.wooledge.org/DontReadLinesWithFor顯然,'cat'是[無用的](http://www.iki.fi/era/unix/award.html)。 – tripleee 2015-06-30 04:26:05
另請參閱http://wiki.bash-hackers.org/scripting/tutoriallist#rv_abs關於ABS指南的一些(非常溫和的)注意事項。共識是,它不應該成爲您的腳本建議的第一站。鏈接頁面推薦一些其他教程(向後滾動幾個凹槽)。 – tripleee 2015-06-30 04:27:49
也許後續元:http://meta.stackoverflow.com/questions/298192/disagreement-on-duplication-action – tripleee 2015-06-30 06:42:59
- 1. 將Stdin和Stdout重定向到文件
- 2. Bash:從文件讀取stdin並將stdout寫入文件
- 3. GDB/MI將stdin和stdout重定向到文件
- 4. 將stdin stdout重定向到多個文件
- 5. 用於上傳文件並執行bash命令的HTML表單
- 6. 將stdin和stdout重定向到stdin首先關閉的位置
- 7. 將多個文件重定向到stdin
- 8. XP的命令提示符:文件重定向到STDOUT
- 9. 將stdout重定向到文件問題?
- 10. 嘗試將stdout重定向到文件
- 11. bash腳本不會將stdout重定向到文件
- 12. 將stdin _and_ stdout重定向到管道
- 13. 如何在Java中執行命令並將其輸出重定向到文件
- 14. 命令行排序文件內容並將輸出重定向到文件
- 15. linux打印到STDOUT並使用單個命令重定向到文件
- 16. 從命令行將輸出重定向到C文本文件
- 17. 從命令行可執行文件輸入/輸出重定向到文件
- 18. 在bash中重定向stdin和stdout以獲得全面的日誌文件
- 19. 如何將bash變量重定向到可執行文件?
- 20. python - 打印到stdout並將輸出重定向到文件
- 21. Bash重定向到文件
- 22. 如何讓bash將多行格式的命令輸出重定向到文件
- 23. 有沒有辦法將Bash命令直接重定向到S3文件對象?
- 24. 重定向到文件以及bash中的STDOUT
- 25. 重定向管道命令到一個文件在bash
- 26. 如何在bash文件列表中執行多個命令(xargs?)
- 27. 如何將數據重定向到單個可執行文件中的stdin?
- 28. 將stdout重定向到Python中的文本文件?
- 29. 運行一個進程並將stdin/strout重定向到特定文件
- 30. 如何將STDOUT從XCode編譯的命令行可執行文件中重定向?
我迷路了,你能舉一個你想要完成的例子嗎? – Freddy 2012-04-11 16:46:11
@tripleee你確實觀察到2012年有人問這個問題,並且在2013年提出了你聲稱重複的問題,對吧?我的意思是,你*確實*認爲要檢查日期,以免引起時代錯誤並破壞空間連續體。 – 2015-06-30 06:25:15
@CharlieMartin感謝提問。我沒有注意到,沒有;但問題的年齡是次要問題。不管問題的年齡如何,對問題和/或多個好答案的更好闡述的問題是作爲「重複」目標的更好選擇;而當兩個問題都比較陳舊時,尤其是兩者中的較新者更加規範。 – tripleee 2015-06-30 06:44:22