Linux中行、列顯示與轉(zhuǎn)換實現(xiàn)方式
在linux中,我們經(jīng)常需要把多項數(shù)據(jù)或內(nèi)容打印輸出為一行,用空格或其他分隔符分開。
有時,又需要把輸出按列顯示。特殊情況下,需要由一種顯示方式轉(zhuǎn)換為另一種。
一、顯示與輸出
1.數(shù)字序列顯示
1 2 3 4 5…這是一行顯示。
- 1
- 2
- 3
- 4
- 5
這是按列顯示。
2.文件輸出
默認按行輸出,由換行符(用\n表示)控制
輸出時,如遇到換行符,就會另起一行
3.打印輸出命令
- echo bash默認把參數(shù)打印輸出到屏幕
- print 通用打印輸出命令,根據(jù)解釋器或編譯器的不同,有不同的含義
- printf 與print相同,也是常用打印輸出命令,具有格式化輸出的含義
在centos7系統(tǒng)中,shell默認采用bash,主要使用echo打印輸出。
echo 123456 默認按行輸出,如需要換行,加選項,設(shè)置\n
案例:
echo 123456
echo -e “123\n456”

選項:-e 開啟轉(zhuǎn)義 -n 不換行
二、行列顯示技巧
1.選擇合適的命令
數(shù)字序列顯示時,執(zhí)行不同命令會產(chǎn)生不同效果。根據(jù)需要選用命令。
如執(zhí)行echo {1..5}時輸出顯示在一行;如執(zhí)行seq 5時輸出顯示為一列,每個數(shù)字一行。

文件列表顯示
ls 按行顯示

find按列顯示

2.echo命令改變行列輸出
默認按行輸出
echo hello
hello
echo -e "h\ne\nl\nl\no"
-n 按行顯示
\n換行輸出

合理規(guī)劃選項與參數(shù),可以有效控制屏幕輸出格式。行列顯示隨心所欲。
3.xargs命令改變行列輸出
echo是標準輸入時隨時改變選項,達到預(yù)期的輸出效果。自己需要多少行多少列,本人自由控制。
而對于已存在的文件,在創(chuàng)建編輯文件時就已確定。如何調(diào)節(jié)行列輸出與顯示呢?這就需要用到xargs命令。
a.列轉(zhuǎn)行
xargs命令是改變已存在的文件的輸出格式。“cat 文件名”是根據(jù)文件的行分隔符輸出顯示在屏幕上。如想改變一下,想把所有行合并為一行,就可以使用管道及xargs命令。
cat 文件名 |xargs
由按行顯示一列→全部按空格分隔顯示為一行

b.行轉(zhuǎn)列
通過xargs命令可以把一列內(nèi)容轉(zhuǎn)為一行,同樣也可以把一行內(nèi)容轉(zhuǎn)為一列。
echo {1..5} |xargs -n1
由一行轉(zhuǎn)為一列
-n1選項中,-n是指定轉(zhuǎn)化列數(shù),1就是轉(zhuǎn)為1列。如果-n2就是轉(zhuǎn)為2列,等等。

4.sed命令改變行列輸出
sed是文本處理中很重要的工具,按行處理數(shù)據(jù),增刪改查。如要求僅僅是把兩行合并為一行,就非常方便。

如果對sed的模式空間與保持空間有所了解,就能理解下面的命令:把一列轉(zhuǎn)為一行并用不同的連接符。
此方法僅供參考。

5.awk命令改變行列輸出
awk、sed和grep是處理文本文件的三大利器,通稱為linux三劍客。
與sed一樣,awk按行處理數(shù)據(jù),把行中數(shù)據(jù)根據(jù)分隔符分離為多個域(或稱字段field)。數(shù)據(jù)輸入與輸出都由格式符(稱為環(huán)境變量)控制,改變格式符就可以改變行或列的輸出。
修改輸出格式,就是修改輸出行分隔符。默認是以\n作為一行的結(jié)尾。如果不需要換行符,就可以設(shè)置為空格。
ORS=" " 按列輸出→一行顯示。仍以seq 1 10為例。

總結(jié)
1.如果在標準輸入時設(shè)置好選項與參數(shù),echo命令可以滿足我們對行或列的輸出需要。
2.查看文本文件時,需要轉(zhuǎn)換行或列時,利用xargs命令就可以搞定。
3.如果想把顯示的行列輸出內(nèi)容另存為一個文件,可以利用重定向功能。
4.對文本的高級編輯與輸出,需要sed與awk命令,按自己的要求設(shè)計出復(fù)雜的格化輸出。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux防火墻firewall設(shè)置端口訪問限制方式
在Linux系統(tǒng)中,firewall工具可以幫助用戶配置防火墻規(guī)則,實現(xiàn)對端口的精確限制,通過簡單的命令,用戶可以開放或移除單個端口、批量處理端口規(guī)則、查看所有開放端口、允許或禁止特定IP或網(wǎng)段訪問某端口等操作2024-10-10
VirtualBox安裝Centos6.8出現(xiàn)E_INVALIDARG(0x80070057)的解決方法
這篇文章主要為大家詳細介紹了VirtualBox安裝Centos6.8出現(xiàn)E_INVALIDARG(0x80070057)的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Apache Flink 任意 JAR 包上傳漏洞利用及防范策略分析
這篇文章主要介紹了Apache Flink 任意 JAR 包上傳漏洞利用及防范策略, 本文提供的案例和方法僅用于教學目的,實際操作時應(yīng)確保遵守相關(guān)法律法規(guī),不應(yīng)用于非法侵入或攻擊他人系統(tǒng),需要的朋友可以參考下2024-07-07
Apache?APISIX?Dashboard?未授權(quán)訪問漏洞分析(CVE-2021-45232)
Apache?APISIX?是一個動態(tài)、實時、高性能的?API?網(wǎng)關(guān),?提供負載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認證、可觀測性等豐富的流量管理功能,這篇文章主要介紹了Apache?APISIX?Dashboard?未授權(quán)訪問漏洞(CVE-2021-45232),需要的朋友可以參考下2023-03-03
Centos7系統(tǒng)下搭建.NET Core2.0+Nginx+Supervisor環(huán)境
本文為大家分享了如何在Centos7系統(tǒng)下搭建.NET Core2.0+Nginx+Supervisor環(huán)境,部署方法非常詳細2018-10-10
在Apache服務(wù)器上啟用GZip壓縮靜態(tài)內(nèi)容的方法
這篇文章主要介紹了在Apache服務(wù)器上啟用GZip壓縮靜態(tài)內(nèi)容的方法,通過配置.htaccess文件即可輕松實現(xiàn),同時附帶了一些GZip的常用命令,需要的朋友可以參考下2015-08-08

