Linux中行、列显示与转换实现方式
在linux中,我们经常需要把多项数据或内容打印输出为一行,用空格或其他分隔符分开。
有时,又需要把输出按列显示。特殊情况下,需要由一种显示方式转换为另一种。
一、显示与输出
1.数字序列显示
1 2 3 4 5…这是一行显示。
- 1
- 2
- 3
- 4
- 5
这是按列显示。
2.文件输出
默认按行输出,由换行符(用\n表示)控制
输出时,如遇到换行符,就会另起一行
3.打印输出命令
- echo bash默认把参数打印输出到屏幕
- print 通用打印输出命令,根据解释器或编译器的不同,有不同的含义
- printf 与print相同,也是常用打印输出命令,具有格式化输出的含义
在centos7系统中,shell默认采用bash,主要使用echo打印输出。
echo 123456 默认按行输出,如需要换行,加选项,设置\n
案例:
echo 123456
echo -e “123\n456”

选项:-e 开启转义 -n 不换行
二、行列显示技巧
1.选择合适的命令
数字序列显示时,执行不同命令会产生不同效果。根据需要选用命令。
如执行echo {1..5}时输出显示在一行;如执行seq 5时输出显示为一列,每个数字一行。

文件列表显示
ls 按行显示

find按列显示

2.echo命令改变行列输出
默认按行输出
echo hello
hello
echo -e "h\ne\nl\nl\no"
-n 按行显示
\n换行输出

合理规划选项与参数,可以有效控制屏幕输出格式。行列显示随心所欲。
3.xargs命令改变行列输出
echo是标准输入时随时改变选项,达到预期的输出效果。自己需要多少行多少列,本人自由控制。
而对于已存在的文件,在创建编辑文件时就已确定。如何调节行列输出与显示呢?这就需要用到xargs命令。
a.列转行
xargs命令是改变已存在的文件的输出格式。“cat 文件名”是根据文件的行分隔符输出显示在屏幕上。如想改变一下,想把所有行合并为一行,就可以使用管道及xargs命令。
cat 文件名 |xargs
由按行显示一列→全部按空格分隔显示为一行

b.行转列
通过xargs命令可以把一列内容转为一行,同样也可以把一行内容转为一列。
echo {1..5} |xargs -n1
由一行转为一列
-n1选项中,-n是指定转化列数,1就是转为1列。如果-n2就是转为2列,等等。

4.sed命令改变行列输出
sed是文本处理中很重要的工具,按行处理数据,增删改查。如要求仅仅是把两行合并为一行,就非常方便。

如果对sed的模式空间与保持空间有所了解,就能理解下面的命令:把一列转为一行并用不同的连接符。
此方法仅供参考。

5.awk命令改变行列输出
awk、sed和grep是处理文本文件的三大利器,通称为linux三剑客。
与sed一样,awk按行处理数据,把行中数据根据分隔符分离为多个域(或称字段field)。数据输入与输出都由格式符(称为环境变量)控制,改变格式符就可以改变行或列的输出。
修改输出格式,就是修改输出行分隔符。默认是以\n作为一行的结尾。如果不需要换行符,就可以设置为空格。
ORS=" " 按列输出→一行显示。仍以seq 1 10为例。

总结
1.如果在标准输入时设置好选项与参数,echo命令可以满足我们对行或列的输出需要。
2.查看文本文件时,需要转换行或列时,利用xargs命令就可以搞定。
3.如果想把显示的行列输出内容另存为一个文件,可以利用重定向功能。
4.对文本的高级编辑与输出,需要sed与awk命令,按自己的要求设计出复杂的格化输出。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
linux如何mount挂载磁盘并设置开机自动mount的实现
这篇文章主要介绍了linux如何mount挂载磁盘并设置开机自动mount的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-09-09
Java使用Apache.POI中HSSFWorkbook导出到Excel的实现方法
这篇文章主要介绍了Java使用Apache.POI中HSSFWorkbook导出到Excel的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-04-04


最新评论