一、什麼是輸入重定向
在Linux系統中,輸入重定向是一種執行命令時將標準輸入流修改為從特定文件、命令、字符串或其它命令的輸出流中獲取數據的技術。這個過程可以通過使用特定的符號將輸入重定向到需要的數據源進行處理。
有些時候,在執行命令時需要從一個文件或另一個命令的輸出中獲得輸入數據,而輸入重定向可以讓我們輕鬆地完成這個任務。輸入重定向通過將特定的文件或命令的輸出內容重定向為標準輸入流,實現了在執行命令的時候從指定輸入源獲取數據的目的。
二、為什麼要用輸入重定向
輸入重定向在實際的系統管理中非常有用,因為可以通過它輕鬆地從多個來源獲取輸入數據,包括從文件和其它命令的輸出中讀取數據。這給Linux運維工作帶來了許多便利。以下列舉了幾種情況下,我們可以使用輸入重定向來處理命令的輸出:
1. 將一個文件的內容讀入到腳本中,以便對它進行處理。
cat file.txt | script.sh
2. 使用一些命令的輸出作為其它命令的輸入。
grep 'string' file.txt | sort | uniq
3. 從腳本中向標準輸入流中寫入數據。
echo "input data" | script.sh
三、常用的輸入重定向符號
在Linux系統中,有三種輸入重定向符號可用於重定向標準輸入文件:
1. 使用小於符號('<‘)表示輸入重定向。要將一個文本文件中的內容讀入到腳本或命令中,請執行以下操作:
command < input_file
2. 使用雙小於號符號('<<‘)表示輸入重定向。可以將任意數量的命令行輸入數據傳遞給一個命令:
command << END input data 1 input data 2 END
3. 使用一個命令(如cat)來標識標準輸入的來源:
cat < input_file
四、示例代碼
以下示例代碼演示了如何使用輸入重定向處理文件中的數據,並在文件中寫入命令輸出的結果。
#!/bin/bash # 從文件中讀取文本內容 input_file="input_file.txt" output_file="output_file.txt" # 讀取文件中的數據 while read line do # 處理每行數據 result=$(echo "$line" | awk '{print $1}') # 將處理結果寫入另一個文件中 echo "$result" >> "$output_file" done < "$input_file"
在以上代碼中,使用了“<”符號,將文件“input_file.txt”的內容重定向到while循環的標準輸入流中。then循環處理每一行文本,並使用“>>”符號將處理結果追加到“output_file.txt”文件中。
原創文章,作者:TIOB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/138779.html