Linux中printf命令使用實例

2021-03-02 良許Linux

在編寫shell腳本時,我們使用echo列印到標準輸出。echo是一個簡單的命令,但其功能有限,想要更好的控制輸出格式,可以使用printf命令。

[root@localhost ~]# printf "姓名:%s\n身高:%dcm\n體重:%dkg\n" "小明" "180" "75"
姓名:小明
身高:180cm
體重:75kg


"姓名:%s\n身高:%dcm\n體重:%dkg\n"是格式,"小明" "180" "75"是參數。格式包含了%s , %d都是格式轉換符,%d對應的參數必須是十進位數。%s對應的參數必須是字符串。還包括了三個\n換行符,printf命令默認不會添加還行符號,需要手動添加。

類型轉換說明符是一個字符,用於指定如何解釋相應的參數,該字符是必須添加的,以下是顯示所有類型轉換及其作用的列表:

該例子使用%d,%x,%o將後面提供的參數轉化為十進位、十六進位、八進位。

[root@localhost ~]# printf "Decimal: %d\nHex: %x\nOctal: %o\n" 100 100 100
Decimal: 100
Hex: 64
Octal: 144

下面例子使用%.2f,其中.2指參數保留兩位小數,f將參數列印為浮點數。

[root@localhost ~]# printf "%.2f\n" 3.1415926
3.14

下面例子中使用了水平制表符\t。例子中給的參數超過了格式中給出的轉換符的數量,多出的參數仍會按照格式輸出。

[root@localhost ~]# printf "%s \t %s \t %s\n" "姓名" "性別" "年齡" "小明" "男" "18" "小紅" "女" "19" "小藍" "男" "18"
姓名   性別   年齡
小明   男   18
小紅   女   19
小藍   男   18

實例中,%-10s , %-8d其中-表示靠左對齊,默認情況下是靠右對齊。10和8表示佔用10或者8個字符寬度。\e[1,30;47m \e[0m表示使用粗體字、黑色字體、白色背景,後面的\e[0,m表示重置。

[root@localhost ~]# cat p.sh 

#!/bin/bash
printf "\e[1;30;47m%-10s %-10s\e[0m\n" "姓名" "年齡"
printf "\e[36;47m%-10s %-8d\e[0m\n" "小明" "18"
printf "\e[31;47m%-10s %-8d\e[0m\n" "小紅" "19"
printf "\e[34;47m%-10s %-8d\e[0m\n" "小藍" "19"

添加良許個人微信即送3套程式設計師必讀資料

→ 精選技術資料共享

→ 高手如雲交流社群

本公眾號全部博文已整理成一個目錄,請在公眾號裡回復「m」獲取!

推薦閱讀:

美國如果把根域名伺服器封了,中國會從網絡上消失?

運用sed命令高效地刪除文件的特定行

七夕 - 程式設計師表白代碼

5T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,單片機,樹莓派,等等。在公眾號內回復「1024」,即可免費獲取!!

相關焦點

  • 使用cat命令在Linux中組合文本文件
    然後可以將合併的文本保存到另一個文本文件中。 在本教程中,您將學習如何使用cat命令將兩個或多個文件中的文本合併為一個文件。 這將幫助您從普通初學者獲得Ubuntu上的高級用戶狀態。 我們在Ubuntu 18.04 LTS系統上運行了本教程中提到的命令。
  • 【知識點】Linux wget 命令實例
    wget是Linux/Unix命令行文件下載器,它是下載網站上文件的免費的非交互下載工具,它支持HTTP、HTTPS和FTP協議,也支持通過HTTP代理檢索。實例1 :下載單個文件# wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso該命令會下載CentOS 7 ISO文件到用戶當前工作目錄中。
  • Linux常用命令:Linux more命令使用方法
    1.命令格式:more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 2.命令功能:more命令和cat的功能一樣都是查看文件裡的內容,但有所不同的是more可以按頁來查看文件的內容,還支持直接跳轉行等功能。
  • 每天一個 Linux 命令:grep 命令
    命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行列印出來。1.命令格式:grep [option] pattern file2.命令功能:用於過濾/搜索的特定字符。可使用正則表達式能多種命令配合使用,使用上十分靈活。
  • Linux中的15個'echo' 命令實例
  • 【Linux】常用命令之 awk 常用實例
    在使用awk命令的過程中,可以使用邏輯操作符「&&」和「||」;也可以進行簡單的數學運算,如+ 、-、、/、%、^分別表示加、減、乘、除、取餘、乘方。**awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。
  • Linux下scp命令使用教程
    然後我們介紹第一條命令將本地的目錄上傳的遠程伺服器目錄上。執行命令"scp  -r /opt/test root@192.168.2.105:/opt"。本條命令意思為將本地的目錄/opt/test上傳到遠程192.168.2.105的opt目錄下。然後根據提示輸入root的密碼,等待即可上傳完畢。接下來我們登錄遠程伺服器進行查看驗證,可以看到目錄內的文件已經全部拷貝過來。
  • linux系統下free命令內存計算邏輯
    本篇文章介紹下linux下free命令展示的內存相關計算邏輯。
  • Linux常用命令 - sed
    Macos 使用的是 BSD 版本,而且大多數 Linux 發行版默認都預裝了 GNU。下面默認的是 GNU 版本。使用 sed 搜索和替換文本的一般形式如下:sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE-i 將其輸出寫入標準輸出seds 替代命令,可能是 sed 中使用最多的命令-/分隔符字符。
  • 使用 Linux stat 命令創建靈活的文件列表 | Linux 中國
    https://linux.cn/article-12637-1.html作者:Sandra Henry-stocker譯者:geekpistat 命令提供了很多關於文件的詳細信息。它不僅提供了文件最近變化的日期/時間,還顯示了最近訪問文件的時間和權限變化。它可以同時告訴你文件的字節大小和塊的數量。它可以顯示文件使用的 inode 以及文件類型。
  • Linux awk命令入門詳解
    使用方法awk '{pattern + action}' {filenames}儘管操作可能會很複雜,但語法總是這樣,其中 pattern 表示 AWK 在數據中查找的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號({})不需要在程序中始終出現,但它們用於根據特定的模式對一系列指令進行分組。
  • linux刪除命令rm的使用
    在linux中創建文件很容易,系統中隨時會有文件變得過時且毫無用處。用戶可以用rm命令將其刪除。該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於連結文件,只是刪除了連結,原有文件均保持不變。
  • Linux下使用tar命令
    一般格式為xx.tar.bz2-v :壓縮的過程中顯示文件!這個常用-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加其他參數!-p :使用原文件的原來屬性(屬性不會依據使用者而變)--exclude FILE:在壓縮的過程中,不要將 FILE 打包。
  • Linux命令 ls 和 ll 的使用方法與基本區別
    一、ll 是 ls -l 的別名查看方法,使用:(alias)查看別名情況。 二、ls 命令可以說是Linux下最常用的命令之一。灰色-->其他文件 -b 把文件名中不可輸出的字符用反斜槓加字符編號(就象在C語言裡一樣)的形式列出。-c 輸出文件的 i 節點的修改時間,並以此排序。-d 將目錄象文件一樣顯示,而不是顯示其下的文件。-e 輸出時間的全部信息,而不是輸出簡略信息。-f -U 對輸出的文件不排序。-g 無用。
  • 教你Linux find命令實例教程:15個find命令用法
    一旦您知道如何在Linux中使用find命令,每個文件都只需敲擊幾下。使用上一個示例中提到的相同文件列表,您還可以使用find來搜索與文本文件內的模式不符的任何文件。$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | tail -1請注意,find命令已被排序到另外兩個方便的Linux實用程序:sort和tail。 Sort將按文件的大小順序排列文件列表,而tail將僅輸出列表中的最後一個文件,該文件也是最大的。
  • 在 Linux 中怎樣使用cp命令合併目錄樹
    為理解該問題讓我們思考下面的例子。假設 dir1 和 dir2 目錄中分別有3個子目錄a,b和c.目錄布局如下所示: 輸入目錄布局在目錄a,b和c中有一些文件,tree命令的輸出將能更好的說明:使用cp命令創建合併:現在我們將這兩個目錄合併成一個名為"merged"新的目錄中.完成上述操作最簡單的方式就是遞歸複製目錄,如下圖所示:
  • Linux基礎命令帖:echo的使用
    此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、Fedora。語法echo [-neE] [arg ...]選項列表使用示例使用「\f」換行[root@localhost~]# echo -e "hello\fworld" //必須使用-e選項,\f換行之後,光標還在結尾hello world[root@localhost ~]#使用「\n」換行[root@localhost ~]#
  • linux中的vim命令
    如何查看命令的幫助文檔,三種方式:內置命令:help ls外部命令:ls --help,簡單的幫助文檔手冊man ls, 通過使用man查看詳細的幫助內容vim和vi命令本質上就是一個命令,這個命令是在linux命令中專門用來編輯文本文件的
  • LINUX常用100條命令總結(三)
    僅在格式字符串中有效實例:[root@localhost ~]# printf "HELLO WORLD\n"HELLO WORLD[root@localhost ~]#[root@localhost ~]# cat test.shprintf "%-10s %-8s %
  • Linux GCC常用命令
    示例程序如下://test.c#include int main(void){    printf("Hello World!2.1 預處理gcc -E test.c -o test.i 或 gcc -E test.c 可以輸出test.i文件中存放著test.c經預處理之後的代碼。打開test.i文件,看一看,就明白了。後面那條指令,是直接在命令行窗口中輸出預處理後的代碼。