首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

格式化bash脚本输出(制表符、表格或空格,使行/列为偶数)

格式化bash脚本输出可以通过使用各种方法来实现,如制表符、表格或空格,以使行/列为偶数。以下是一些常用的方法:

  1. 使用制表符(Tab): 制表符是一种常用的格式化输出方法,可以使用\t来插入制表符。例如,如果你想在bash脚本中输出一行包含多列的文本,可以使用制表符来分隔不同的列。示例代码如下:
代码语言:txt
复制
#!/bin/bash

echo -e "Name\tAge\tCity"
echo -e "John\t25\tNew York"
echo -e "Alice\t30\tLondon"
echo -e "Bob\t35\tParis"

输出结果:

代码语言:txt
复制
Name    Age     City
John    25      New York
Alice   30      London
Bob     35      Paris
  1. 使用表格格式化输出: 如果你想要更加美观和结构化的输出,可以使用表格格式化输出。可以使用特定的工具或库来实现表格输出,如column命令或printf命令。

使用column命令的示例代码如下:

代码语言:txt
复制
#!/bin/bash

echo -e "Name\tAge\tCity" | column -t -s $'\t'
echo -e "John\t25\tNew York" | column -t -s $'\t'
echo -e "Alice\t30\tLondon" | column -t -s $'\t'
echo -e "Bob\t35\tParis" | column -t -s $'\t'

输出结果:

代码语言:txt
复制
Name  Age  City
John  25   New York
Alice 30   London
Bob   35   Paris

使用printf命令的示例代码如下:

代码语言:txt
复制
#!/bin/bash

printf "%-10s %-10s %-10s\n" "Name" "Age" "City"
printf "%-10s %-10s %-10s\n" "John" "25" "New York"
printf "%-10s %-10s %-10s\n" "Alice" "30" "London"
printf "%-10s %-10s %-10s\n" "Bob" "35" "Paris"

输出结果:

代码语言:txt
复制
Name       Age        City      
John       25         New York  
Alice      30         London    
Bob        35         Paris     
  1. 使用空格格式化输出: 如果你想要使用空格来格式化输出,可以使用printf命令中的空格控制符。可以通过设置字段宽度来实现每列对齐,以确保行/列为偶数。

示例代码如下:

代码语言:txt
复制
#!/bin/bash

printf "%-20s %-10s %-10s\n" "Name" "Age" "City"
printf "%-20s %-10s %-10s\n" "John" "25" "New York"
printf "%-20s %-10s %-10s\n" "Alice" "30" "London"
printf "%-20s %-10s %-10s\n" "Bob" "35" "Paris"

输出结果:

代码语言:txt
复制
Name                 Age        City      
John                 25         New York  
Alice                30         London    
Bob                  35         Paris     

对于格式化bash脚本输出,以上是一些常用的方法。根据具体的需求和情况,你可以选择适合自己的方法来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《前端运维》一、Linux基础--08Shell其他及补充

匹配除换行符外的任意一个字符 grep . reg.txt ^ 匹配行首。例如,^hello 会匹配以 hello 开头的行 grep ^a reg.txt $ 匹配行尾。...-d,自定义分隔符,默认为制表符。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。...printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。...3、%-4.2f 指格式化为小数,其中 .2 指保留2位小数。 我们再来看个例子: #!.../bin/bash # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出

70020

《前端运维》一、Linux基础–08Shell其他及补充

匹配除换行符外的任意一个字符 grep . reg.txt ^ 匹配行首。例如,^hello 会匹配以 hello 开头的行 grep ^a reg.txt $ 匹配行尾。...-d,自定义分隔符,默认为制表符。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。...printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。...3、%-4.2f 指格式化为小数,其中 .2 指保留2位小数。 我们再来看个例子: #!.../bin/bash # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出

69120
  • 可视化输出表格数据

    commandN ;; esac 在实例中,我们通过第一个参数指定style的值来选择不同的表格形式(具体的表格形式由制表符向量tbs实现)。...另外当第一个参数以-h或者--h开头时,我们可以输出help信息: style="$1" case $style in # 根据第一个参数为-0或-1或-2来实现不同的表格样式, 即给tbs赋不同的值...[NR][0]:rows第0列存储前一行和后一行的列数, 用于确定当行的表格样式 colors[16]:存储每个制表符对应的着色方案 tbs[16]:存储已经着色的制表符,其中制表符样式类似于╚ ╩...╝ ╠ ╬ ╣ ╔ ╦ ╗ , ═ ═ ═ ║ ║ ║,前1~9个为表格骨架的样式,第10表示着表格元素空格的填充,11~13分别表示上边框、中间和下边框的连接符,第14~16表示左边框、中间和右边框的连接符...,可以在shell脚本加入如下的语句用于可视化输出表格数据: echo -e "Module Log Analyse Function Name\tCount Function1\t20 Function2

    3.7K20

    Linux中awk工具的使用

    awk是行处理器,相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 *awk处理过程**:* 依次对每一行进行处理,然后输出 awk的用法 awk 参数...输出字段分隔符, 默认也是空格,可以改为其他的 ORS 输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕 -F [:#/] 定义了三个分隔符 print 打印 print...输入字段1,2,中间不分隔 awk -F: '{print 3,$6}' OFS="\t" /etc/passwd 输出字段1,3,6, 以制表符作为分隔符 awk -F: '{print 2}...表示格式输出 %格式化输出分隔符 -8表示长度为8个字符 s表示字符串类型,d表示小数 举例 1、显示 /etc/passwd 中含有 root 的行 awk '/root/' /etc/passwd...7个字段包含bash的行的第1和第7个字段 awk -F ":" '1,7}' /etc/passwd 9、以 : 为分隔,显示$3>999或第7个字段包含bash的行的第1和第7个字段 awk -F

    5.3K10

    解释型语言-shell

    /bin/bash echo "Hello World !" 执行: chmod +x ./test.sh #使脚本具有执行权限 ..../test.sh #执行脚本 实例二 脚本使用read命令从stdin(标准输入)获取输入并赋值给PERSON变量,最后在stdout(标准输出)上输出 #!...$# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $?...对于 Shell 脚本,就是这些脚本所在的进程ID。 $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...OK" echo "$name It is a test" 显示结果重定向至文件: echo "It is a test" > myfile 显示当前日期:echo `date` printf命令用于格式化输出

    1.5K31

    生信人的自我修养:Linux 命令速查手册(全文引用)

    file # 删除行前的空白:空格,制表符 sed 's/\s*$//' file # 删除行尾的空白:空格,制表符 sed 's/^\s*//;s/\s*$//' file # 删除行首和行尾的空白...:空格,制表符 sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有...以下三行 awk 命令完成同样的功能:输出第 5 列为 10 的的行。...,默认是换行符 FS,列分隔符,默认是空格和制表符 ORS,输出行分隔符,默认为换行符 OFS,输出列分隔符,默认为空格 FILENAME,当前文件名 内置函数 字符串函数 sub()、substr().../bin/bash command1 command2 ... chmod +x run.sh 给 run.sh 脚本增加可执行权限 执行脚本,以下三种方式都可以: # 脚本在前台执行,标准输出和标准错误输出到屏幕

    4K40

    生信人的自我修养:Linux 命令速查手册

    file # 删除行前的空白:空格,制表符 sed 's/\s*$//' file # 删除行尾的空白:空格,制表符 sed 's/^\s*//;s/\s*$//' file # 删除行首和行尾的空白...:空格,制表符 sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有...以下三行 awk 命令完成同样的功能:输出第 5 列为 10 的的行。...,默认是换行符 FS,列分隔符,默认是空格和制表符 ORS,输出行分隔符,默认为换行符 OFS,输出列分隔符,默认为空格 FILENAME,当前文件名 内置函数 字符串函数 sub()、substr().../run.sh bash run.sh sh run.sh # 前提sh链接到了bash,如果没有,需要root权限执行命令:ln -sf /bin/bash /bin/sh # 脚本在前台执行,标准输出和标准错误保存到文件

    7.4K22

    【Linux】常用命令之 awk 常用实例

    整理:Linux公社 awk命令工具 在Linux/UNIX系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作...,被广泛应用于Shell脚本,完成各种自动化配置任务。...一、awk命令的语法及概述 awk 选项 '模式或条件 { 编辑指令 }' 文件1 文件2 … //过滤并输出文件符合条件的内容 awk -f 脚本文件 文件1 文件2 … //从脚本中调用编辑指令...5、输出所有偶数行的内容 [linuxmi@linux:~/linuxmi迷]$ awk '(NR%2)==0 {print}' linuxmi.py ?...注意:命令较多时,使用“BEGIN……END” 2)按字段输出文本 1、输出每行中(以空格分隔)的第3个字段 [linuxmi@linux:~/linuxmi迷]$ awk '{print $3}' linuxmi.py

    2.7K20

    Python基础语法之输入输出、基本数据类型介绍

    格式化输出: ? 换行与缩进 python的语法其实总结一下就两条: (1)一条代码作为一行:比如一个赋值、一个运算、一个请求、一条打印等。...关于缩进风格: 标准Python风格是每个缩进级别是使用4个空格,永远不要使用Tab制表符!...因为不同编辑器,处理制表符的方式不同,有些会把它当成一个制表符,有的会将其看成是4个或4个以上的空格,因而会产生源代码中制表符和空格的使用不一的后果,违反了Python的缩进规则。...当然可以设置编辑器在打入Tab键时将其替换成相应个数的空格。 Python的代码原则是代码只包含空格! 注释 单行注释:使用# 多行注释:使用三个单引号(''')或三个双引号(""")。...str="", num=-1),返回的是一个列表格式的数据 参数 str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

    96820

    Ansible 数百台批量操作前期准备工作

    方法 1:使用 Shell 脚本 可以使用一个简单的 Shell 脚本来读取 user.txt 并格式化成 Ansible 所需的 hosts 文件格式。 Shell 脚本 #!.../bin/bash # 定义输入和输出文件 input_file="user.txt" output_file="/etc/ansible/hosts" # 清空 hosts 文件 > "$output_file...shell脚本分析: while IFS=" " read -r ip user pass; 语句 这个语句用于逐行读取文件或标准输入中的数据,并将每一行的内容按空格分割成不同的字段。...默认情况下,IFS 是空格、制表符和换行符,但在这里我们明确指定为一个空格 " ",意味着按空格来分割每一行。...ip user pass 是我们想要从每一行中提取的变量名。read 会将每一行按空格分割,依次将第一部分赋给 ip,第二部分赋给 user,第三部分赋给 pass。

    9310

    Shell脚本学习1

    是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell 以#开头的行就是注释,会被解释器忽略,sh里没有多行注释 3、echo/printf/read echo使用: echo...printf使用: printf 命令用于格式化输出, 是echo命令的增强版 printf 不像 echo 那样会自动换行,必须显式添加换行符(\n) printf 由 POSIX 标准所定义,移植性要比...特殊变量 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。...$* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。...* 和 @ 的区别: * 和 @ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"1" " 但是当它们被双引号(" “)包含时,”2 … n"的形式输出所有参数;“@” 会将各个参数分开

    32220

    Python基础入门---【Python安装,Python程序基本组成】

    注意 : Python 中的标识符是区分大小写的 在定义变量时,为了保证代码格式, = 的左右应该各保留⼀个空格; 在 Python 中,如果变量名需要由两个或多个单词组成时,可以按照以下...如果希望输出⽂字信息的同时,⼀起输出数字,就需要使⽤到格式化操作符。 % 被称为格式化操作符,专⻔⽤于处理字符串中的格式 。 包含 % 的字符串,被称为格式化字符串 。...print 函数的输出默认是回车结尾 # 两个 print 函数会输出两行内容 print("hello world") print("hello python") 多个 print 函数的输出结果打印到一行...# 多个 print 函数会输出结果打印到一行 print("hello world", end="") print("hello python") 转义字符 \t 在控制台输出⼀个制表符(tab...),制表符的功能是在不使⽤表格的情况下在垂直⽅向对齐, 这样通过 print 函数输出⽂本时可以保持垂直⽅向对⻬; \n 在控制台输出⼀个换⾏符; 转义字符 描述 \\ 反斜杠符号 \' 单引号

    80320

    Shell脚本常用命令一览

    ,先将脚本内容输出到屏幕上然后执行脚本,如有错误则输出; (常用) -x:执行脚本并输出执行过程调试利器; (常用) -i:若用-i参数,则bash是交互的 -s:若用-s参数,则bash从标准输入中读入命令...选项: -irsD 或 -c 命令 或 -O shopt选项        (仅适合调用) -abefhkmnptuvxBCHP 或 -o 选项 #请输入`bash -c "help set"' 以获得关于...WeiyiGeek.内建命令 实际案例: #示例1.检测脚本是否正确,并不执行 , 在set命令中也能实现调试 bash -n database.sh    #示例2.执行脚本,输出执行过程,shell...脚本自身已经包含了调式选项,能都打印出脚本接受的参数和输入 bash -x database.sh  #-x 选项是打印所有行的信息 sh -x script.sh #使用-x选项跟踪脚本调试shell...WeiyiGeek.临时环境变量 0x01 输入输出 ---- echo 命令 描述:用于输出指定字符串或者变量的值; echo [选项] "输出内容" #选项 -n: 一行输出。

    2K41

    Linux 三剑客之 awk 实战详解教程

    $N表示第几列,$0 表示整个行内容 再来看下 awk 比较实用的功能 格式化输出。和 C 语言的 printf 格式输出是一毛一样,我个人特别喜欢这种格式化方式,而不是 C++ 中的流的方式。 ?...上边的过滤条件为,第 3 列为 root 且第 6 列为 10 的行,才会被输出。 awk 支持各种比较运算符号 !=、>、=、列为 root 用户,以及第 2 行内容,且打印时输出行号。NR 表示当前第几行,NF表示当前行有几列。...这里用到了 数组 和 for 循环,值得一提的是,awk 的数组可以理解为字典或 Map,key 可以是数值和字符串,这种数据类型在平时很常用。...,默认是空格和制表符; OFS:输出列分隔符,用于打印时分割字段,默认为空格 ORS:输出行分隔符,用于打印时分割记录,默认为换行符 (二)输出格式 awk 提供 printf 函数进行格式化输出功能,

    1.7K31

    Shell脚本常用命令一览

    ,先将脚本内容输出到屏幕上然后执行脚本,如有错误则输出; (常用) -x:执行脚本并输出执行过程调试利器; (常用) -i:若用-i参数,则bash是交互的 -s:若用-s参数,则bash从标准输入中读入命令...选项: -irsD 或 -c 命令 或 -O shopt选项        (仅适合调用) -abefhkmnptuvxBCHP 或 -o 选项 #请输入`bash -c "help set"' 以获得关于...set命令中也能实现调试 bash -n database.sh    #示例2.执行脚本,输出执行过程,shell脚本自身已经包含了调式选项,能都打印出脚本接受的参数和输入 bash -x database.sh...  #-x 选项是打印所有行的信息 sh -x script.sh #使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态: # test.sh: line 8: ((: 1...echo [选项] "输出内容" #选项 -n: 一行输出。

    1.3K10

    Bash Printf 命令

    image.png 本文最先发布在:https://www.itcoder.tech/posts/bash-printf-command/ 通常,在写 Bash 脚本的时候,我们使用echo来打印标准输出...想要更好地控制输出格式,使用printf命令。 printf命令格式化并且打印它的参数,类似 C 语言 printf()函数。...这里是一些常用的转义字符: \\ - 显示一个反斜杠符号 \b - 显示一个后退字符 \n - 显示一个换行符 \r - 显示一个回车符 \t - 显示一个横向制表符 \v - 显示一个竖向制表符 三、...%g, %G - 将参数按double解释,并以%e或%f的形式打印。 %g 打印成小写字母, %G打印成大写字母。...0 - 空白处补0 空白 - 在正数和负数前面补充空格 # - 数字格式 3.3 宽度指令 width指令被放置在任何符号字母的前面,用来指定转换结果的宽度。 如果输出结果宽度小于指定宽度,补充空格。

    4.2K10

    Linux文本分析命令awk的妙用

    0 基本用法 awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 awk命令格式如下 awk [-F field-separator...] 'commands' input-file(s) [-F 分隔符]是可选的,因为awk使用空格,制表符作为缺省的字段分隔符,因此如果要浏览字段间有空格,制表符的文本,不必指定这个选项,但如果要浏览诸如...|左右被理解为简单命令,即前一个(左边)简单命令的标准输出指向后一个(右边)标准命令的标准输入 awk会根据分隔符将行分成若干个字段,$0为整行,$1为第一个字段,$2 为第2个地段,依此类推… 为打印一个字段或所有字段...$1, $2 }' ## 输出为 this is /etc/passwd的文件内容如下 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin...~ 不匹配正则表达式 4 支持流程控制语句,类C语言 if while do/while for break continue 输出第一个字段的第一个字符大于d的行 awk -F ':' '{ if

    1.3K10
    领券