shell腳本printf
A. shell腳本 setenv YE 0100 然後yr= `printf "%04d" $YE` 再echo $yr 為什麼yr是0064
printf默認輸出的是10進制數,0100是八進制,
試試這個
YE=0100
yr=`printf "%#o" $YE`
echo $yr
B. linux shell腳本中printf列印的時候怎麼不足2位補空格
echo"123"|awk'{printf"%2s",$2}'
C. 在 shell腳本中調用一個C語言的可執行程序,如何將C程序中printf的字元保存成到文件中
在shell調用時,重定向輸出的信息:
./helloExe>test.txt
hello world!就保存到文件test.txt中了。
D. 【現學現忘&Shell編程】— 31.AWK編程之printf命令
AWK是一種處理文本文件的語言,是一個強大的文本分析工具。
AWK可以看成一門獨立的語言,它擁有語言的基本特徵,換句話說AWK可以寫出極其繁瑣和復雜的程序,AWK的語法比Shell的語法還難以接收。但絕大多數情況下,我們並不需要用AWK寫過於復雜的東西,建議能用Shell處理的需求就不用AWK來解決。
當用AWK處理需求遠要比Shell處理簡單的多的時候,我們就用AWK來解決。
AWK也是用來截取列信息的,它比Shell中的 cut 命令更先進,比如對空格作為分隔符的處理。
在學習AWK之前,我們要先學習一下 printf 格式化輸出命令,這個命令是AWK基本輸出中必須要用到的一個命令。
AWK的標准輸出支持 print 命令和 printf 命令,這兩個命令在AWK當中基本作用是一樣的,但是Linux命令中只支持 printf 命令,如下:
我們可以看到Linux系統中只支持 printf 命令,所以我們這里就先學習一下 printf 命令。
使用如下文本
執行 printf 命令:
[root@localhost tmp]# printf '%s' $(cat student.txt)
說明: printf 命令後是沒有辦法直接寫參數的,也就是不能直接加文件名來讀取文件的內容, printf 命令支持的是其他命令結果的輸出,交給 printf 命令來處理。所以說 printf 命令很少單獨使用,一般都放在AWK當中來使用,這樣更加合理,否則就和上邊一樣,看起來很難受。
結果:
我們可以看到上面的結果非常的爛,他是把所有的內容一個字元緊接著一個字元的輸出,中間沒有空格或者回車。
這就是 printf 命令,如果不指定輸出的格式,則會把所有輸出內容連在一起輸出。其實文本的輸出本身就是這樣的, cat 等文本輸出命令之所以可以按照漂亮的格式輸出,那是因為 cat 命令已經設定了輸出格式。
那麼為了讓 printf 輸出合理的格式,就需要手動自定義自己需要的格式。
printf '%s\t %s\t %s\t %s\t %s\t %s\t \n' $(cat student.txt)
執行命令結果如下:
如果不想把成績當成字元串輸出,而是按照整型和浮點型輸出,執行如下命令:
這個例子不是很好,但一定要把標題顧慮掉,否則會出現如下效果,標題都被變成了整型數據。
E. shell中的print和printf的區別
shell 沒有print命令, 不過是有printf命令的哦, 這個區別在於, printf可以使用格式化字元串的呢。
能否看一下my網名呢, 以後遇到了shell編程的問題的話, 都能幫助搞定的哦。
F. Shell腳本如何向終端輸出信息
常用如下兩個命令用於向終端列印信息:echoprintf echo命令常用於需要進行簡單格式化的字元串列印;printf命令是Shell版本的C語言函數printf,它為格式化輸出提供了高度的靈活性。echo命令 用於向終端輸出信息的最常用命令是echo命令,用法為: echo string 這里,string是要向屏幕列印輸出的字元串,如命令:echo Hi 產生如下輸出:Hi 也可以將空格嵌入到輸出中,例如: $echo Hello World! Hello World! 除了空格,還可以在string中嵌入格式化轉義序列。 echo命令的常用轉義序列 轉義序列描述 \n列印一個換行符 \t列印一個跳格符(tab符) \c列印字元串時不帶換行符 \ 列印一個雙引號 printf命令類似於echo命令,最基本的使用與echo一樣,以下echo命令: echo Hello World!等同於 printf Hello World! printf命令與C語言中的printf函數一樣,還可以使用格式化串來實現復雜的格式化輸出功能,語法如下: printf format argument 格式化序列的格式如下:%[-]m.nx 這里%用於標識格式化序列的開始,x標識格式化序列的類型,下表給出了x常用的值: 格式化序列類型字母描述s字元串c單個字元 d十進制整數 x十六進制整數f符點數
G. shell腳本主要有哪些
第一個shell腳本程序:
#!/bin/bash
# 上面中的 #! 是一種約定標記, 它可以告訴系統這個腳本需要什麼樣的解釋器來執行;echo "Hello, world!"
變數:
定義變數:
country="China"Number=100
注意: 1,變數名和等號之間不能有空格;
2,首個字元必須為字母(a-z,A-Z)。
3, 中間不能有空格,可以使用下劃線(_)。
4, 不能使用標點符號。
5, 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。
使用變數:
只需要在一個定義過的變數前面加上美元符號$就可以了, 另外,對於變數的{} 是可以選擇的, 它的目的為幫助解釋器識別變數的邊界.
country="China"echo $countryecho ${country}echo "I love my ${country}abcd!"
#這個需要有{}的;
重定義變數:直接把變數重新像開始定義的那樣子賦值就可以了:
country="China"country="ribenguizi"
只讀變數: 用 readonly 命令 可以把變數字義為只讀變數。
readonly country="China"#或
country="China"readonly country
刪除變數: 使用unset命令可以刪除變數,但是不能刪除只讀的變數。用法:
unset variable_name
變數類型
運行shell時,會同時存在三種變數:
1) 局部變數
局部變數在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序不能訪問局部變數。
2) 環境變數
所有的程序,包括shell啟動的程序,都能訪問環境變數,有些程序需要環境變數來保證其正常運行。必要的時候shell腳本也可以定義環境變數。
3) shell變數
shell變數是由shell程序設置的特殊變數。shell變數中有一部分是環境變數,有一部分是局部變數,這些變數保證了shell的正常運行
特殊變數:

其中, 1. 取值後面必須為關鍵字 in,每一模式必須以右括弧結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。2. 如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
H. shell中的print和printf的區別
因為不知道你使用的是bash還是tcsh,還是其他種類的shell。假設是bash, 下面舉例子講解,有可能你的機器上的同樣的命令輸出與我的不同,供參考。
1)運行下面2條which命令:
$ which print
/usr/bin/print
$ which printf
/usr/bin/printf
說明當前機器上安裝了外部命令print和printf
2)看一下這2個命令的具體的位置:
$ ls -l /usr/bin/print /usr/bin/printf
lrwxrwxrwx 1 root root 11 Nov 15 2010 /usr/bin/print -> run-mailcap
-rwxr-xr-x 1 root root 51744 Apr 1 2012 /usr/bin/printf
說明print是符號鏈接,看看它指向的可執行文件:
$ ls -l /usr/bin/run-mailcap
-rwxr-xr-x 1 root root 17012 Nov 15 2010 /usr/bin/run-mailcap
3)運行print --help或者man print可以查看它的幫助
運行man printf可以查看幫助,或者運行/usr/bin/printf --help查看幫助
為什麼運行printf --help不能查看幫助呢?
4)在bash環境下面,運行help可以看見所有的內置命令,可以看見內置命令包括printf,命令同名時,內置命令的優先順序高於外部命令,並且內置命令用help printf來查看幫助。
綜上所述,查看內置printf命令的幫助用help printf,查看外部printf命令的幫助要帶上全路徑,運行/usr/bin/printf --help查看幫助(不帶全路徑會被認為是內置printf命令)。
5)我個人經驗,普通的列印用echo命令,格式化列印用printf命令(內置的,外部的都可以)。
謝謝!
I. linux建立一個shell腳本格式化輸出一個文件
linux建立一個shell腳本格式化輸出一個文件可以實現。
1、C++實現獲取文件名稱,輸出到txt文檔中,拷貝到Excel以便按列處理。
2、構造格式一左數據,組合成格式一數據。
3、結合notepad++正則表達式匹配,構造格式二、三內容,組合成格式二、三數據,即可建立一個shell腳本格式化輸出一個文件。
J. shell中的print和printf的區別
print按照默認的分隔符列印一個或多個變數或常量(字元串),末尾自動換行;
printf可以格式化後輸出每個變數,(可以控制列印位置、分割、佔位寬度、數值的顯示方式、位數等),末尾不會自動換行,如需換行需要在printf第一個格式字元串參數末尾使用「\n」
這是主要的區別,具體用法可以查看相關幫助文件
