如何編寫一個從文件中收集內容並將其輸入命令的shell? 它看起來像:$命令<輸入文件 我不知道如何開始。如何實現shell輸入重定向
4
A
回答
1
使用wc
作爲一個例子:
$ wc <input_file> output_file
說明:
wc
:這是要調用< input_file
命令(或外殼內置):從input_file
讀取輸入> output_file': write output into
output_file`
注意,許多命令接受輸入文件名稱作爲其CMDLINE一個參數(不使用<
),例如:
grep pattern file_name
awk '{print}' file_name
sed 's/hi/bye/g
FILE_NAME `
0
你需要指出in把你的shell程序的文件描述符放到輸入文件中。在c中,通過調用int dup2(int oldfd, int newfd);
來實現,其工作是使newfd成爲oldfd的副本,如果需要的話首先關閉newfd。
在Unix/Linux中,每個過程有其自己的文件的描述符,存儲這樣的:
0 - 標準輸入(stdin) 1 - 標準輸出(stdout) 2 - 標準錯誤(錯誤)
所以你應該將stdin描述符指向你想要使用的輸入文件。 以下是我寫這幾個月前:
void ioredirection(int type,char *addr) {
// output append redirection using ">>"
if (type == 2) {
re_file = open(addr, O_APPEND | O_RDWR, S_IREAD | S_IWRITE);
type--;
}
// output redirection using ">"
else if (type==1) re_file = open(addr, O_TRUNC | O_RDWR, S_IREAD | S_IWRITE);
// input redirection using "<" or "<<"
else re_file = open(addr, O_CREAT | O_RDWR, S_IREAD | S_IWRITE);
old_stdio = dup(type);
dup2(re_file, type);
close(re_file);
}
0
您可以輸入在bash腳本使用命令read
閱讀:
inputreader.sh
#!/bin/bash
while read line; do
echo "$line"
done
輸出
$ echo "Test" | bash ./inputreader.sh
Test
$ echo "Line 1" >> ./file; echo "Line 2" >> ./file
$ cat ./file | bash ./inputreader.sh
Line 1
Line 2
$ bash ./inputreader.sh < ./file
Line 1
Line 2
0
你可以使用xargs
那個:
例如你有一個文件,它有一些文件名列表。
cat your_file|xargs wc -l
wc -l
是你的命令 cat
和xargs
將文件作爲輸入,每行傳遞給wc -l
所以輸出將他們的名字都出現在所有文件中的行數輸入文件 這裏主要的東西是xargs
會通過每一行作爲輸入到wc -l
相關問題
- 1. C中的簡單輸入(Shell中的輸入重定向)
- 2. MCMS 2002 - 如何實現重定向
- 3. 在shell中輸入輸出重定向c
- 4. 將輸入和輸出重定向到一個shell中
- 5. 爲什麼在PowerShell中沒有實現「<」輸入重定向?
- 6. 如何將shell命令輸出重定向到Python腳本輸入?
- 7. 如何處理輸入重定向
- 8. 如何重定向輸入爲customaction execommand
- 9. 如何重定向輸入在cmd中
- 10. 簡單的shell linux C實現,重定向標準輸出與freopen
- 11. 在shell腳本中重定向輸出
- 12. 重定向mongo shell的錯誤輸出
- 13. 重定向PHP-shell腳本輸出
- 14. 使用Shell重定向標準輸出()
- 15. shell腳本重定向輸出
- 16. 實時輸出重定向
- 17. 如何重定向多行重定向輸入bash後的輸出?
- 18. 如何在bash shell中重定向命令輸出?
- 19. Unix shell的輸入重定向不起作用
- 20. 當StdIn重定向到python manage.py shell時讀取StdIn的輸入
- 21. Linux |在C |中執行Shell輸入重定向不顯示
- 22. 如何指望從輸入重定向和用戶輸入
- 23. 在Delphi控制檯應用程序中實現輸入/輸出重定向
- 24. 如何重定向輸出?
- 25. Java-重定向輸入流
- 26. 在C重定向輸入++
- 27. 重定向標準輸入
- 28. 輸入重定向GDB
- 29. 輸入重定向C
- 30. 重定向標準輸入
歡迎來到StackOverflow!你真的想***寫一個shell ***,還是你想寫一個* shell腳本*?你目前閱讀了哪些文檔?這裏最成功的問題往往包括代碼,預期結果和實際結果。當問題顯示「我不知道如何開始」時,常見答案之一是「Google」。 – ghoti