1. 程式人生 > >linux重定向,將輸出寫入txt檔案

linux重定向,將輸出寫入txt檔案

轉載地址:http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html

在瞭解重定向之前,我們先來看看linux 的檔案描述符。

linux檔案描述符:可以理解為linux跟蹤開啟檔案,而分配的一個數字,這個數字有點類似c語言操作檔案時候的控制代碼,通過控制代碼就可以實現檔案的讀寫操作。 使用者可以自定義檔案描述符範圍是:3-num,這個最大數字,跟使用者的:ulimit –n 定義數字有關係,不能超過最大值。

linux啟動後,會預設開啟3個檔案描述符,分別是:標準輸入standard input 0,正確輸出standard output 1,錯誤輸出:error output 2

以後開啟檔案後。新增檔案繫結描述符 可以依次增加。 一條shell命令執行,都會繼承父程序的檔案描述符。因此,所有執行的shell命令,都會有預設3個檔案描述符。

對於任何一條linux 命令執行,它會是這樣一個過程:


一個命令執行了:

先有一個輸入:輸入可以從鍵盤,也可以從檔案得到

命令執行完成:成功了,會把成功結果輸出到螢幕:standard output預設是螢幕

命令執行有錯誤:會把錯誤也輸出到螢幕上面:standard error預設也是指的螢幕

檔案輸入輸出由追蹤為一個給定的程序所有開啟檔案的整數控制代碼來完成。這些數字值就是檔案描述符。最為人們所知的檔案米描述符是 

stdinstdout 和 stderr,檔案描述符的數字分別是0,1和2。這些數字和各自的裝置是保留的。一個命令執行前,先會準備好所有輸入輸出,預設分別繫結(stdin,stdout,stderr),如果這個時候出現錯誤,命令將終止,不會執行。命令解析過程,可以參考:Linux Shell 萬用字元、元字元、轉義符使用例項介紹

這些預設的輸出,輸入都是linux系統內定的,我們在使用過程中,有時候並不希望執行結果輸出到螢幕。我想輸出到檔案或其它裝置。這個時候我們就需要進行輸出重定向了。

linux shell下常用輸入輸出操作符是:

1.  標準輸入   (stdin) :程式碼為 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0   0代表:/dev/stdin 
2.  標準輸出   (stdout):程式碼為 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1  1代表:/dev/stdout
3.  標準錯誤輸出(stderr):程式碼為 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr

  • 輸出重定向:

格式:

command-line1 [1-n] > file或檔案操作符或裝置

上面命令意思是:將一條命令執行結果(標準輸出,或者錯誤輸出,本來都要列印到螢幕上面的)  重定向其它輸出裝置(檔案,開啟檔案操作符,或印表機等等)1,2分別是標準輸出,錯誤輸出。

例項:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #顯示當前目錄檔案 test.sh test1.sh test1.sh實際不存在 [[email protected] shell]$ ls test.sh test1.sh ls: test1.sh: 沒有這個檔案和目錄 test.sh #正確輸出與錯誤輸出都顯示在螢幕了,現在需要把正確輸出寫入suc.txt # 1>可以省略,不寫,預設所至標準輸出 [[email protected] shell]$ ls test.sh test1.sh 1>suc.txt ls: test1.sh: 沒有這個檔案和目錄 [[email protected] shell]$ cat suc.txt test.sh #把錯誤輸出,不輸出到螢幕,輸出到err.txt [[email protected] shell]$ ls test.sh test1.sh 1>suc.txt 2>err.txt [[email protected] shell]$ cat suc.txt err.txt test.sh ls: test1.sh: 沒有這個檔案和目錄 #繼續追加把輸出寫入suc.txt err.txt  “>>”追加操作符 [[email protected] shell]$ ls test.sh test1.sh 1>>suc.txt 2>>err.txt

相關推薦

linux定向輸出寫入txt檔案

轉載地址:http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在瞭解重定向之前,我們先來看看linux 的檔案描述符。 linux檔案描述符:可以理解為linux跟蹤開啟檔案,而分配

Python 標準輸出 sys.stdout 定向螢幕輸出內容輸出檔案

參考:https://www.cnblogs.com/turtle-fly/p/3280519.html __console__=sys.stdout # redirection start f

linux定向標準輸入輸出,標準錯誤

lin linux重定向 文件描述符 name txt 文件 sets color 描述符 標準輸入是文件描述符0。它是命令的輸入,缺省是鍵盤,也可以是文件或其他命令的輸出。標準輸出是文件描述符1。它是命令的輸出,缺省是屏幕,也可以是文件。標準錯誤是文件描述符2。這是命令錯

C++ 資料寫入txt檔案WriteFile的使用

寫檔案操作WriteFile在開發中經常使用到,對檔案的操作。關於這個API我就不介紹了,編譯器裡面按F1會有詳細的解釋,x_O雖然都是英文,呃呃呃。因為經常使用,久而久之不實用又會忘記,所以乾脆記錄

loadrunner測試介面結果寫入日誌檔案

Action()中使用web_custom_request()方法傳送請求或者F1檢視web_custom_request的使用技巧Action() { web_custom_request( "court_user", //這個是給請求起個名稱,在樹形圖中顯示,不影

(轉)linux sudo 定向實現只有系統管理員才有權限操作的文件中寫入信息

shel echo 命令 文件 sudo 命令 方式 符號 iss 字串 chown 眾所周知,使用 echo 並配合命令重定向是實現向文件中寫入信息的快捷方式。 本文介紹如何將 echo 命令與 sudo 命令配合使用,實現向那些只有系統管理員才有權限操作的文件中寫入信

Linux編程 22 shell編程(輸出和輸入定向管道數學運算命令退出腳本狀態碼)

tab test $? per width 可能 註意 ble 保存 1. 輸出重定向   最基本的重定向是將命令的輸出發送到一個文件中。在bash shell中用大於號(>) ,格式如下:command > inputfile。例如:將date命令的輸出內容,

Linux程式設計 22 shell程式設計(輸出和輸入定向管道數學運算命令退出指令碼狀態碼)

1. 輸出重定向 最基本的重定向是將命令的輸出傳送到一個檔案中。在bash shell中用大於號(>) ,格式如下:command > inputfile。例如:將date命令的輸出內容,儲存到指定的輸出檔案中。      如果檔案已存在,重定向操作符會用新的檔案資料覆蓋已有檔案。這種情況下可以用

linux定向總結:如何shell命令的輸出資訊自動輸出檔案中儲存

在做批量實驗室,例如跑批量MR的作業,我們會寫好shell指令碼,然後啟動指令碼,等所有作業執行完再去看結果,但是這些執行時的資訊如何儲存下來到檔案中呢?下面這個命令可以完成這個任務。 sh batchjob.sh 2>&1 | tee mylog.log

管道輸出管道定向grep

opera -i 執行 tor 小於號 a-z passwd tail operator 輸出:大於號:將一條命令執行結果(標準輸出,或者錯誤輸出,本來都要打印到屏幕上面的)重定向其它輸出設備(文件,打開文件操作符,或打印機等等)> 是覆蓋原有內容>> 是

學習之路(三)淺談:輸出定向grep及正則表達式egrep

grep 地址總線:內存尋址 數據總線:傳輸數據 控制總線:控制指令 > :輸出重定向(會覆蓋原有內容) >>: 追加重定向(不會覆蓋,追加輸出) 2>: 重定向錯誤輸出 2

shell特性、通配符、輸入輸出定向命令歷史

comm 解釋 指令 alias命令 命令補全和別名 zsh 開頭 命令 匹配 一:shell介紹 shell是一個命令解釋器,提供用戶和機器之間的交互,支持特定語法,每個用戶都可以有自己特定的shell,centos默認為bash,還有zsh,ksh等。 二:命令歷史 h

shell中輸入輸出定向>、>>、<、<<、>/dev/null、2>&1、<<end、<<EOF等

轉載自:https://www.jb51.net/article/106373.htm https://blog.csdn.net/qq_31073871/article/details/80810306 其他參考:www.runoob.com/linux/linux-shell-io-re

100道計算題輸出txt檔案再讀取檔案至控制檯,在控制檯中輸入答案並評判對錯

我在課堂上基本完成了輸出100道題和建立文件,但是因為對輸入輸出流不熟悉,所以並沒有實現將輸出的計算題匯出到文件裡,在課下我又請教了宿舍的大佬,基本完成如下: 原始碼: import java.io.File; import java.io.FileInputStream; import java.

C語言產生一組數字寫入txt文件中

#include<stdio.h> /*產生一組連續的數字,並將其寫到txt文件中*/ /*說明:本程式在在win10 系統64位下用Dev-C++ 5.11版本編譯器編譯的*/int main(){ int m=1; FILE *fp=NULL; fp=fopen("D:\\1.txt","

linux定向輸出

shell 錯誤輸出重定向到標準輸出  ./tmp/test.sh > /tmp/test.log 2>&1 >和<是檔案重定向符。那麼1和2是什麼? shell中每個程序都和三個系統檔案相關聯 標準輸入stdin 標準輸出stdout 標準錯誤st

2>&1 &:標準錯誤2定向到標準輸出1中

bash中 2>&1 & 的解釋 1、bash中0,1,2三個數字分別代表: 0 STDIN_FILENO 標準輸入(一般是鍵盤) 1 STDOUT_FILENO 標準輸出(一般是使用者終端控制檯) 2 STDERR_FILENO 標準錯

shell中輸入輸出定向>、>>、<、<<、>/dev/null、2>&1、<<end、<<EOF等

實際上,輸入輸出重定向中的3個標準檔案描述符,輸入0、正常輸出1、錯誤輸出2,這三個值經常被省略。 舉例: ls > shell_out 等價於: ls 1> shell_out 前言 相信大家經常能在shell指令碼中發現>/dev/nu

Python開啟檔案list、numpy陣列內容寫入txt檔案

python儲存numpy資料:numpy.savetxt("result.txt", numpy_data); 儲存list資料:file=open('data.txt','w') file.wri

Linux定向及標準輸入、輸出、錯誤相關

 通常情況,每個 Unix 程式在啟動時都會開啟三個流,一個用於輸入,一個用於輸出,一個用於列印診斷或錯誤訊息。它們分別被做:標準輸入,標準輸出,標準錯誤。 標準輸入是程式可以讀取其輸入的位置